通过多个对象类执行Linq
本文关键字:执行 Linq 对象 | 更新日期: 2023-09-27 17:59:12
我是Linq的新手,找不到类似的主题。。我试图只显示当前经过身份验证的用户所在的组织。
我有以下Linq,但返回的组织不正确:
OrganizationList.DataSource = from i in Database<Organization>.Linq()
where (i.Users.Select(y => y.User.Id).Contains(user_id))
select i;
以下是类别:
public class Organization
{
int Id
string Name
IList<OrganizationUser> Users
[...]
}
OrganizationUser
{
int Id
User User
Organization Organization
[...]
}
User
{
int Id
string FirstName
string LastName
[...]
}
假设:
Database<TEntity> where TEntity : class
user_id是当前经过身份验证的用户id
我正在使用NHibernate
我无法修改类,因此必须使用OrganizationUser。
你能帮帮我吗?
编辑:非常感谢你的帮助!
这两种解决方案都在发挥作用:
OrganizationList.DataSource = Database<Organization>.Linq()
.Where(o => o.Users.Any(u => u.User.Id == user_id));
OrganizationList.DataSource = from i in Database<Organization>.Linq()
where (i.Users.Any(y => y.User.Id == user_id)
select i;
再次Thanx:)
我没有机会测试它,但以下内容可能有效;
OrganizationList.DataSource = from i in Database<Organization>.Linq()
where (i.Users.Any(y => y.User.Id == user_id)
select i;
怎么样,
var organizationsWithUser = Database<Organization>.Linq()
.Where(o => o.Users.Any(u => u.User.Id == user_id));