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