积极答复者
linq to entities 动态查询条件。

问题
-
我在项目中使用linq to entities动态创建查询条件。
代码段如下:
foreach (var keyword in keywords)
{
int? keywordId = keyword.Id;Expression sub = Expression.Call(
Expression.Property(r, typeof(KeywordRelationInfo).GetProperty("KeywordId")),
typeof(int?).GetMethod("Equals", new Type[] { typeof(object) }),
Expression.Constant(keywordId)
);
condition = Expression.And(sub, condition);
}
但是这里的int?类型无法进行比较,提示如下错误:类型为“System.Int32”的表达式不能用于方法“Boolean Equals(System.Object)”的类型为“System.Object”的参数
请问如何解决?
答案
-
您用这个代码试验看看
http://www.scottgu.com/blogposts/dynquery/dynamiclinqcsharp.zip
这个代码已经涵盖了大多数 linq 语句的动态转化
恭喜自己5星用户达成- 已建议为答案 韦恩卑鄙 waywa 2009年9月2日 3:28
- 已标记为答案 Allen Chen - MSFTModerator 2009年9月7日 1:37
-
类型不匹配的原因吧~试试 typeof(Int32)
宠辱不惊,看庭前花开花落。去留无意,望天上云卷云舒。- 已建议为答案 韦恩卑鄙 waywa 2009年9月2日 3:29
- 已标记为答案 Allen Chen - MSFTModerator 2009年9月7日 1:37
全部回复
-
您用这个代码试验看看
http://www.scottgu.com/blogposts/dynquery/dynamiclinqcsharp.zip
这个代码已经涵盖了大多数 linq 语句的动态转化
恭喜自己5星用户达成- 已建议为答案 韦恩卑鄙 waywa 2009年9月2日 3:28
- 已标记为答案 Allen Chen - MSFTModerator 2009年9月7日 1:37
-
类型不匹配的原因吧~试试 typeof(Int32)
宠辱不惊,看庭前花开花落。去留无意,望天上云卷云舒。- 已建议为答案 韦恩卑鄙 waywa 2009年9月2日 3:29
- 已标记为答案 Allen Chen - MSFTModerator 2009年9月7日 1:37