[英]Filtering Linq Query with Virtual Icollection Property
我正在尝试查询一个清单,该清单产生的会议中所有与会者都没有业务。 我的查询部分有效。 如果会议中没有人与公司打交道,它会完美地工作。 如果我联系各种各样的人(一个有业务的人和没有业务的人参加会议),那会中断。请问我可以对ling查询进行什么编辑,以便将所有与会者都考虑在内。
交互作用
public virtual ICollection<InteractionAttendee> Attendees { get; set; }
参加者
public virtual Interaction Interaction { get; set; }
public virtual Person Person { get; set; }
我的查询
from z in ctx.Meetings
where z.Attendees.Any(y => !ctx.Businsses.Any(x => x.Owner_Id == y.Person.Id)
select new {Id = z.Id}
代替使用任何,而是尝试全部
from z in ctx.Meetings
where z.Attendees.All(y => !ctx.Businsses.Any(x => x.Owner_Id == y.Person.Id)
select new {Id = z.Id}
在“全部”中,您指定所有与会者都必须满足条件。
不知道您是否正在寻找...。
您正在使用2套互斥的集(参加会议的有业务人员和没有事务的人)
int possibillity = 1; //1=> all has business
//2=> none has business
//3=> some may have business
var meetings =
ctx.Meetings.where(m=> (possibillity==1 && m.Attendees.All(a=> ctx.Businsses.Any(x => x.Owner_Id == a.Person.Id)))
|| (possibillity==2 && m.Attendees.All(a=> !ctx.Businsses.Any(x => x.Owner_Id == a.Person.Id)))
|| (possibillity==3 && 1==1));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.