【发布时间】:2011-04-12 03:40:40
【问题描述】:
我正在尝试让以下 SQL 查询在 LINQ 中工作:
Select id from table1 where id in (1,2) or canceledId in (1,2)
我正在使用 BuildContainsExpression 来实现“IN”条件,但我不知道如何实现“或”条件。 我在黑暗中的拍摄如下:
var identifiers = new List<int> {1,2};
var query = (from t in Context.Table1
select t);
var query =
query.Where(BuildContainsExpression<Table1, int>(t => t.Id, identifiers));
if (showCanceled)
{
var expression = query.Where(BuildContainsExpression<Table1, int>(t => t.CanceledId.Value, identifiers)).Expression;
Expression.Or(expression, transactionsQuery.Expression);
}
但我得到以下异常:
二元运算符 Or 没有为类型 'System.Linq.IQueryable1[Table1]' and 'System.Linq.IQueryable1[Table1]' 定义..
有什么想法吗? -我的方向正确吗?
谢谢, 尼尔。
【问题讨论】:
-
您在使用 .NET 3.5 中的实体框架吗?
-
是的,(3.5 SP1)很抱歉没有提到这一点。
标签: linq frameworks entity contains