Jan 20 at 9:32 AM
Edited Jan 20 at 9:39 AM
|
Hi,
I was looking at the source code for fetching the data and found that you're querying the data on "Timestamp" attribute of the entity.
/// <summary>
/// Retrieves a collection of entities
/// </summary>
/// <typeparam name="TEntity">type of entity to retrieve</typeparam>
/// <param name="tableName">name of the table</param>
/// <param name="from">from date and time (inclusive)</param>
/// <param name="to">end date and time (exclusive)</param>
/// <param name="maxResult">maximum number of items to return</param>
/// <returns>collection of entities</returns>
public IEnumerable<TEntity> Retrieve<TEntity>(string tableName, DateTime from, DateTime to, int maxResult) where TEntity : TableServiceEntity
{
return context.CreateQuery<TEntity>(tableName)
.Where(w => w.Timestamp >= from)
.Where(w => w.Timestamp < to)
.Take(maxResult)
.AsTableServiceQuery()
.Execute();
}
Please note that this will result in full table scan. As long as your tables are small, this will not make much of a difference but as the table grows bigger, your query would become highly inefficient. I would recommend that instead of querying it on Timestamp
attribute, please query on "PartitionKey" attribute.
Thanks
Gaurav
|
|