When is the Index attribute used on a Sqlite.Net class?
<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>