生成された SQL はクロス結合を行いますが、ID が一致すると内部結合のように機能しますが、C# で結合キーワードを実際に使用してこれを実行するより良い方法はありますか? とにかくプロパティがすべて階層的に関連しているため、プロパティの結合方法を指定する必要がない方法はありますか
アイテムは Page クラスです
PageRoles は Page クラスの IQueryable プロパティです
aspnet_Roles は PageRole クラスの IQueryable プロパティです
var item = _repository.GetByKey(999);
var f = (from fd in item.PageRoles
from k in fd.aspnet_Roles
where Roles.GetRolesForUser().Contains(k.RoleName)
&& k.RoleId == fd.RoleId
select k.RoleName)
.Count();
編集:
これは、私のクラスの IQueryable プロパティの例です。以下の例は、PageRole クラスからのものです。
public IQueryable<aspnet_Role> aspnet_Roles
{
get
{
var repo=NorthCadburyWebsite.Models.aspnet_Role.GetRepo();
return from items in repo.GetAll()
where items.RoleId == _RoleId
select items;
}
}