これが私のクエリです:
var x = db
.Users
.Where(u => u.Locations.Any(l => searchedLocation.Counties.Any(c => c.LocationId == l.LocationId));
環境:
Users
ですIQueryable<User>
。(EF オブジェクト セット)searchedLocation
はLocation
オブジェクトです。Counties
ですICollection<MiniLocation>
。
私がやろうとしていること:
これらの場所の郡のいずれかが、検索された場所に属する郡のいずれかの locationId を持つすべてのユーザーを返します。
例:
ニューヨーク市を検索します (LocationId = 1. County1LocationId = 2)
ユーザー: ボブ。場所: ソーホー。County1LocationId = 2. County2 LocationId = 3.
それで、それは一致です。(ソーホーには LocationId が 2 の郡があり、NYC にもあるため)
私が受け取るエラー:
タイプ 'xxx.xxx.Locations.MiniLocation' の定数値を作成できません。このコンテキストでは、プリミティブ型 (Int32、String、および Guid など) のみがサポートされます。
何か案は?