我有以下方法,我可以传入一个 lambda 表达式来过滤我的结果,然后是一个回调方法,它将在结果列表上工作。这只是我系统中的一个特定表,我将一遍又一遍地使用这个结构。我如何构建一个通用方法,比如 DBget,它将一个 Table 作为参数(公平的 ADO.NET 数据服务实体)并传入一个过滤器(一个 lambda 表达式)。
public void getServiceDevelopmentPlan(Expression<Func<tblServiceDevelopmentPlan, bool>> filter, Action<List<tblServiceDevelopmentPlan>> callback)
{
var query = from employerSector in sdContext.tblServiceDevelopmentPlan.Where(filter)
select employerSector;
var DSQuery = (DataServiceQuery<tblServiceDevelopmentPlan>)query;
DSQuery.BeginExecute(result =>
{
callback(DSQuery.EndExecute(result).ToList<tblServiceDevelopmentPlan>());
}, null);
}
我对此的第一个打击是:
public delegate Action<List<Table>> DBAccess<Table>(Expression<Func<Table, bool>> filter);