EF多对多选择路口

沃尔沃

我正在尝试使用C#实体框架实现标记系统。对于两个或多个预期都存在以返回结果的标记,我无法获取所需的查询。我有很多对很多的关系(首先是FK,首先是数据库),并且当所有选择的标签都存在时,我试图获取一个对象。对象-LookupTable-属性。我将选定的标签解析为一个列表,然后尝试仅获取存在此列表中所有标签的那些对象。它似乎导致了我对“任何”运算符而不是“所有”运算符的期望。

List<string> intersectTags = new List<string>();

foreach (object i in ef.objects.Where(o => o.Attributes.All(attribute =>
intersectTags.Contains(attribute.AttributeNK))))

更新:还需要获取ef.Object具有比intersectTags更多的标签的实例。过滤其中intersectTags是Object.Attributes子集的实例。

土清

万一您的属性是所选标签子集您的代码将失败

如果在intersectTags是o.Attributes的子集时要查找匹配项,请尝试逆转检查。

不幸的是,Linq to Entity不支持这种语法,我们需要ToList()加载对象并执行Linq To Objects。

它应该可以工作,但是会影响性能(如果有更好的解决方案,我会发布更新):

List<string> intersectTags = new List<string>();

foreach (object i in ef.objects.ToList().Where(intersectTags.All(tags =>
o.Attributes.Any(attribute => attribute.AttributeNK == tags))))

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

EF多对多选择路口

来自分类Dev

SQL多对多选择查询

来自分类Dev

雄辩的Laravel多对多选择

来自分类Dev

条件复杂的多对多选择

来自分类Dev

雄辩的多对多选择没有特定角色的用户

来自分类Dev

JQL多对多选择:项目不在项目中

来自分类Dev

EF核心:LINQ选择“多对多”到“多对多”

来自分类Dev

蒙哥交叉路口措施选择

来自分类Dev

MySQL多选择插入

来自分类Dev

PHP的多选择下拉

来自分类Dev

剑道多选拖放选择

来自分类Dev

EF7多对多关系。如何将数据从多选下拉列表传递到控制器?

来自分类Dev

用多选择SQL插入

来自分类Dev

jQuery substr()多选择值

来自分类Dev

用多选择SQL插入

来自分类Dev

一对多选择语句

来自分类Dev

MYSQL在一条语句中进行多对多选择(聊天,最新消息,用户名)

来自分类Dev

Rails:选择多选仅提交最后选择

来自分类Dev

原子事务中的EF多选查询

来自分类Dev

多实例/多选项卡方法

来自分类Dev

多实例/多选项卡方法

来自分类Dev

从多选检索所有选择的选项

来自分类Dev

Angular JS:“多选选择框”的“全选”选项

来自分类Dev

UITableViewCell多选时选择的背景色

来自分类Dev

如何从MySQL中的多选择插入数据

来自分类Dev

从多选检索所有选择的选项

来自分类Dev

角度选择的多选下拉菜单

来自分类Dev

AngularJS提前输入+多选择标签

来自分类Dev

选择查询中的多选案例