両側にコード(ICollection)にナビゲーションプロパティがないが、関連付けが存在する場合、多対多の関係のエンティティに対して結合クエリを作成することは可能ですか?
多分どういうわけかlinqまたはエンティティSQLを介して?
両側にコード(ICollection)にナビゲーションプロパティがないが、関連付けが存在する場合、多対多の関係のエンティティに対して結合クエリを作成することは可能ですか?
多分どういうわけかlinqまたはエンティティSQLを介して?
ジャンクションテーブルがエンティティモデルの一部である場合は、次のように実行できます。
from a in db.AAntities
join ab in db.ABs // the junction class
on a.Id equeals ab.IdA
join b in db.BEntitites
on ab.IdB equals b.Id into bees
select new { A = a, Bees = bees }
これにより、Aエンティティとそれに関連するBエンティティのリストが作成されます。
public partial class User
{
public virtual int Id {
get { return _id; }
set { _id = value; }
}
public virtual string Mail {
get { }
set { _}
}
public virtual string Password {
get { }
set { ; }
}
}
public partial class UserGroupNew
{
public virtual int Id {
get { }
set { }
}
public virtual string Name {
get { }
set { }
}
public virtual string Description {
get { }
set { }
}
}
そしてそれらの2つのエンティティは多対多の関係にあります。ナビゲーションプロパティのないモデルを作成し、リポジトリクラスを介して関係を管理できれば便利です。ジャンクションクラスは問題ありませんが、(可能であれば)追加のプロパティやクラスなしでジャンクションクラスを処理するのが最善のオプションです。