次の関係を持つ 3 つのオブジェクトがあります。Feature には、FeatureGroup オブジェクトの List<> が含まれています。FeatureGroup には、Application オブジェクトがプロパティとして含まれています。
特定の機能についてアプリケーション名のリストを取得できる辞書を作成したいと考えています (アプリケーションは機能を共有しており、どのアプリがどの機能をサポートしているかを確認したい)。
正しく動作するコードの一部を次に示します。
Dictionary(Feature, List(string)) AppLookup = this.DataContext().Features .Select(x => 新規 { 機能 = x、 AppNames = x.FeatureGroups .Select(y => y.Application.ApplicationShortName) 。明確() .ToList() })) .ToDictionary(x => x.Feature, x => x.AppNames); var appsFound = viewModel.AppLookup .Where(x => x.Value.Count > 0) .ToList(); //これには正しい値である 27 が含まれます
これは私がコーディングしたかった元の方法ですが、2つの Expand() 行のコメントを外さない限り機能しないようです:
Dictionary(Feature, List(string)) AppLookup = this.DataContext().Features //.Expand("機能グループ") //.Expand("機能グループ/アプリケーション") .ToDictionary(x => x, x => x.FeatureGroups .Select(y => y.Application.ApplicationShortName) 。明確() .ToList()); var appsFound = viewModel.AppLookup .Where(x => x.Value.Count > 0) .ToList(); // 上記の .Expand 行がコメント解除されていない限り、これは 0 です