1
給出如下的函數,我可以從我的數據庫中取一個表,並使用Where擴展方法編寫一個lambda表達式,並使用簡單的包裝器方法構建所有其他案例並提供過濾器。通用數據庫Linq
public void getPeople(Expression<Func<tblPeople, bool>> filter, Action<List<tblPeople>> callback)
{
var query = from People in sdContext.tblPeople.Where(filter)
select People;
var DSQuery = (DataServiceQuery<tblPeople>)query;
DSQuery.BeginExecute(result =>
{
callback(DSQuery.EndExecute(result).ToList<tblPeople>());
}, null);
}
我現在真正想做的是寫一個更通用的方法,將tblPeople抽象爲一個參數。這樣我就可以爲我的所有電話提供一種線路方式,至少那些提供列表的線路方法!我該如何搭建和構建:
public void getTable<T>(Expression<Func<T, bool>> filter, Action<List<T>> callback)
{
var query = from DB in sdContext.T.Where(filter)
select DB;
var DSQuery = (DataServiceQuery<T>)query;
DSQuery.BeginExecute(result =>
{
callback(DSQuery.EndExecute(result).ToList<T>());
}, null);
}
這是可能的!
我應該指定,我使用ADO.NET DataService的,我不認爲這GetTable方法是在Silverlight客戶端庫提供。這幾乎是我一直在尋找的! – DavidA 2009-12-07 13:02:36