当前位置: 首页 > 编程语言 > C#

如何使用linq2sql分享

时间:2023-04-10 22:05:09 C#

和OR运算符使用predicatebuilder一对多关系,两个表的ID列之间有一个外键。使用linq2sql我试图选择所有TABLE1条目,以便它们相应的TABLE2值至少包含我传递的列表中的1个项目。这是我在LINQPad(很棒的程序)中使用的一些示例代码来测试它,但我收到错误NotSupportedException:查询运算符'Any'不受支持的重载。长[]项目={3,5,8};varpredicate=PredicateBuilder.False();foreach(longiinitems){longt=i;predicate=predicate.Or(att=>att.ID==t);}//TABLE2.Where(predicate).Dump();//工作起来就像一个魅力IQueryablequery=fromt1inTABLE1wheret1.TABLE2.AsQueryable().Any(predicate)//这一行有问题selecta;查询.转储();更新在LinqPad中使用LinqKit时,添加对LinqKit.dll的引用,取消选中IncludePredicateBuilder,并在AdditionalNamespaceImports选项卡下添加LinqKit。解决方法是在TABLE1对象上调用AsExpandable(),在EntitySet上使用时,在表达式变量上调用Compile()。所以你的最终查询是IQueryablequery=fromt1inTABLE1.AsExpandable()wheret1.TABLE2.Any(predicate.Compile())//问题应该消失selecta;更多信息在这里。以上就是C#学习教程:Howtouselinq2sqlandtheORoperatortousepredicatebuilder的全部内容分享。如果对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,并不代表侵权,如有侵权,请点击右边联系管理员删除。如需转载请注明出处: