title: When is the Index attribute used on a Sqlite.Net class?
body: <p>I am building a mobile application using <code>Sqlite.Net</code> and I have come across the <code>Indexed</code> attribute. This is shown in the example here: <a href="https://github.com/praeclarum/sqlite-net#example-time" rel="nofollow noreferrer">https://github.com/praeclarum/sqlite-net#example-time</a></p>
  
  <pre><code>public class Stock
  {
      [PrimaryKey, AutoIncrement]
      public int Id { get; set; }
      [MaxLength(8)]
      public string Symbol { get; set; }
  }
  
  public class Valuation
  {
      [PrimaryKey, AutoIncrement]
      public int Id { get; set; }
      [Indexed]
      public int StockId { get; set; }
      public DateTime Time { get; set; }
      public decimal Price { get; set; }
  }
  </code></pre>
  
  <p>as you can see the <code>StockId</code> column is marked as <code>Indexed</code> but when querying the tables it will surely be up to the <code>Sqlite</code> engine to determine the indexes and optimise querying.</p>
  
  <p>So my question is what is the <code>Indexed</code> attribute used for and do I need it?</p>