相关疑难解决方法(0)

条件Linq查询

我们正在研究日志查看器.该用户可以选择按用户,严重程度等进行过滤.在Sql中我会添加到查询字符串,但我想用Linq来做.我怎样才能有条件地添加where-clause?

c# linq .net-3.5 linq-to-sql

87
推荐指数
6
解决办法
8万
查看次数

LINQ to entities - 构建where子句以在多对多关系中测试集合

所以,我正在使用Linq实体框架.我有2个实体:ContentTag.他们彼此处于多对多的关系中.Content可以有很多Tags,Tag可以有很多Contents.所以我试图写一个查询来选择任何标签名称相等的所有内容blah

实体都将另一个实体的集合作为属性(但没有ID).这是我在努力的地方.我有一个自定义表达式Contains(所以,无论谁可以帮助我,你可以假设我可以为一个集合做一个"包含").我得到了这个表达式:http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID = 2670710&SiteID = 1

编辑1

我最终找到了自己的答案.

c# linq lambda many-to-many entity-framework

18
推荐指数
1
解决办法
2万
查看次数

如何在Linq到EF中使用Expression <Func <Model,bool >>的条件?

关于这个主题已经存在一些问题(例如实体框架中的Expression.Invoke?),但是,我无法找到适合我具体情况的答案.我想定义一个这样的方法:

public IQueryable<Customer> GetCustomers(Expression<Func<Customer, bool>> condition)
{
    return from p in ctx.Customers.AsExpandable()
        where condition.Compile()(p)
        select p;
}
Run Code Online (Sandbox Code Playgroud)

AsExpandable方法来自LinqKit(正如前面提到的线程中所建议的那样).但是,当我尝试像他的方式调用我的方法时:

var customers = GetCustomers(c => c.ID == 1);
Run Code Online (Sandbox Code Playgroud)

它抛出InvalidCastException:

无法将类型为"System.Linq.Expressions.InstanceMethodCallExpressionN"的对象强制转换为"System.Linq.Expressions.LambdaExpression".我究竟做错了什么?

c# linq linq-to-entities entity-framework linqkit

3
推荐指数
1
解决办法
1808
查看次数