我正在創建一個類來使用Azure表存儲執行CRUD功能。使用表達式抽取對Azure表存儲的查詢
我在這裏使用泛型類型。
我有下面的方法,我試圖通過一個表達式來使用TableQuery
,但我有一些問題。
線TableQuery<T> query = new TableQuery<T>().Where<T>(criteria);
將無法編譯,並給我的消息
Cannot implicitly convert type 'System.Linq.IQueryable<T>'
to 'Microsoft.WindowsAzure.Storage.Table.TableQuery<T>'.
An explicit conversion exists (are you missing a cast?)
我明白了消息,並知道它告訴我,我缺少強制,但我不能確定如何將其正確編碼。
我滿的方法是:
public List<T> GetSome<T>(Expression<Func<T, bool>> criteria) where T : ITableEntity, new()
{
TableQuery<T> query = new TableQuery<T>().Where<T>(criteria); // <---- This line isn't working
List<T> results = table.ExecuteQuery<T>(query).ToList<T>();
return results;
}
我明白這一點。我掙扎的地方是我如何才能讓它工作。我想我正在使用錯誤的方法,但不知道我應該使用哪一個來傳遞lambda。 – Darren