組織構造には説明責任パターンを使用しています。linqを使用してnhibernateを使用して、いくつかの部門と位置を見つけましたが、2つの問題があります。
var query =
Repository<Party>.Find(p => p.IsInternal == true)
.Where(p => p.Parents.Any(c => c.Parent.PartyId == id))
.Where(p =>
(
p.PartyType.PartyTypeId == (int)PartyTypeDbId.Department &&
_secretariat.Departments.Select(c => c.PartyId).Contains(p.PartyId)
)
||
(
p.PartyType.PartyTypeId == (int)PartyTypeDbId.Position &&
p.Children.Any(c =>
c.AccountabilityType.AccountabilityTypeId == (int)AccountabilityTypeDbId.TenurePersonOfPosition &&
((Person)c.Child).UserName != null)
)
);
最初に:クエリのこの部分に対して「未処理の式タイプ:1003」を取得しました:「_ secretariat.Departments.Select(c => c.PartyId).Contains(p.PartyId)」および「プロパティが見つかりません」「UserName」を取得しました
ストアドプロシージャを使用する必要があると思う複雑なクエリがたくさんあります。
悪い英語でごめんなさい!