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;
もう一度ありがとう:)