C# 对象模型数组与C数组相交的Nhibernate查询
假设我们有一个名为User的映射nhibernate对象模型,其中包含注册列表。我们还有一个包含有效注册列表的C数组 如何仅查询包含有效注册的用户 我尝试了以下方法:C# 对象模型数组与C数组相交的Nhibernate查询,c#,nhibernate,C#,Nhibernate,假设我们有一个名为User的映射nhibernate对象模型,其中包含注册列表。我们还有一个包含有效注册列表的C数组 如何仅查询包含有效注册的用户 我尝试了以下方法: Registration[] validRegistrations; // already populated session.Query<User>().Where(usr => usr.Registrations.Intersect(validRegistrations).Any()); var resul
Registration[] validRegistrations; // already populated
session.Query<User>().Where(usr => usr.Registrations.Intersect(validRegistrations).Any());
var results = from user in session.Query<User>()
from registration in user.Registrations
where validRegistrations.Contains(registration)
select user;
当我尝试此操作时,会出现以下错误:IntersectResultOperator结果运算符当前不受支持虽然不是最佳的,但类似的操作不起作用吗
var results =
session
.Query<User>()
.Where(usr => validRegistrations.Contains(usr.Registrations)
.ToList();
如果您不介意切换到LINQ查询语法,我认为这会使它更具可读性,我相信您正在寻找以下内容:
Registration[] validRegistrations; // already populated
session.Query<User>().Where(usr => usr.Registrations.Intersect(validRegistrations).Any());
var results = from user in session.Query<User>()
from registration in user.Registrations
where validRegistrations.Contains(registration)
select user;
以下解决方案相当于相交:
用户和注册是否双向映射?用户是否可以拥有无效的注册?