如何定义匿名方法类型以使用LINQ构建动态查询?

时间:2012-11-29 16:52:46

标签: c# multithreading linq generics linq-to-sql

我正在忙于一个LINQ to SQL项目,该项目基本上为我的数据库中的每个实体类型创建多个线程,这些线程不断地从线程中的DB查询信息。

这是一个伪示例:

streamer.DefineDataExpression<Contacts>(x => x.FirstName == "Bob");
while(true)
{
     List<Contacts> MyContactsResult = streamer.ResultList;
     // do whatever with MyContactsResult
}

上面的代码不存在,但这是我到目前为止的'流光'类(它显然不起作用,但你可以看到我在上面尝试实现的目标):

public void DefineExpression(System.Linq.Expressions.Expression<System.Func<T, bool>> expression)
{
    using (var db = new LINQDataContext())
    {
        ResultList = db.GetTable<T>().Where(expression);
    }
}

如何创建像'DefineExpression'这样的方法,允许我动态查询LINQ类型?

1 个答案:

答案 0 :(得分:0)

为什么不使用Dynamic LINQ provider, as mentioned by Scott Guthrie。我认为这可以为您提供所需的一切,因为您可以将查询定义为字符串。因此,您可以更轻松地构建查询的字符串表示形式,并在运行中执行。