私のドメインサービスのインクルードにwhere句を入れることができないようです - いくつかのループを使っていくつかのlookupGroupsに必要なデータを取得しています。遅延ロードのナビゲーションプロパティ
var _lookupGroups = _lookupGroupRepository.All();
var _lookupValues = _institutionLookupValueRepository.All().Where(x => x.InstitutionID == _userProfile.InstitutionID);
int i = 0;
foreach (var _group in _lookupGroups)
{
var _values = _lookupValues.Where(x => x.LookupGroupID == _group.LookupGroupID);
foreach (var _value in _values)
{
_group.InstitutionLookupValues.Add(_value);
i++;
}
Console.WriteLine(_group.GroupName + " " + i.ToString());
}
return _lookupGroups;
私が見ていたものについていくつかの検証のために入れました - 私たちが反復する最初のグループはStatesです。私のカウンターは50と言いますが、私のナビゲーションプロパティは100となり、私たちが持っている施設ごとに50セットずつ(2セットあります)表示されます。私のカウンタが50と言っても、すべてのルックアップ値を取得してナビゲーションプロパティに入れています。また、メタデータファイルのすべてのインクルードを削除しました。
明確にする:私はlookupGroupsに添付されているlookupvaluesを持っています。ルックアップ値は機関に割り当てられます。だから私は状態のルックアップグループの値を取得する場合は、私は50のルックアップ値を取得します。上記のコード。この行を実行すると、_group.InstitutionLookupValues.Add(_value);私のInstitutionLookupValues = 100(機関に関係なくすべてのlookupValuesを取る)。私のカウンターは50を示しています。特定の機関に結びついているかどうかわからない、すべての参照値をどこかで取得しています。
問題の内容がわかりません。あなたのカウンターは何ですか?それは違う数字の問題ですか? –
ありがとうございます - 少し質問を更新しました。 – gevjen