タイトルが示すように、Linq-To-SQL で選択サブクエリを実行しようとしています。これが私の状況です:
次のフィールドを返すデータベース ビューがあります。
- ソース ID
- ライセンス ID
- ライセンス名
- 特性 ID
- 特性名
これを、次のプロパティを持つ私のモデルに保存できるようにしたい
- ID
- 名前
- 特性 (これは ID、名前、アイコンを持つリストです => アイコンは byte[] です)
これが私が書いた、うまくいかないクエリです:
var licensesWithCharacteristics =
_vwAllLicensesWithAttributesAndSourceIdRepository.GetAll()
.Where(x => x.SourceID == sourceId)
.Select(a => new LicenseWithCharacteristicsModel()
{
LicenseId = a.LicenseId,
LicenseName = a.LicenseName
,CharacteristicList = _vwAllLicensesWithAttributesAndSourceIdRepository.GetAll()
.Where(x => x.LicenseId == a.LicenseId)
.Select(c => new CharacteristicModel { Id = c.CharacteristicID, Name = c.CharacteristicName, Icon = c.Icon })
.Distinct().ToList()
})
.Distinct().ToList();
これをどのように解決しますか?パフォーマンスを維持するために 1 つのクエリでこれを実行しようとしていますが、ちょっと行き詰まっています。