私はここで本当に単純な何かを見逃しているに違いないと確信しています。
OK、AreaIdのリストがあります。そのリストをMapAreaテーブルと比較し、テーブルには存在するが提供されたリストには存在しないIDを返したい。
これは私がチェックしたい提供された領域の私のリストです:
var currentAreas = (from c in _entities.mapAreaLink
where c.listingId == id
select new
{
c.MapArea.areaId
}
).ToList();
これは、mapAreasの完全なリストを取得しています。
var availableAreas = (from m in _entities.MapAreas
select new
{
m.areaId
}
).ToList();
これにより、2つのリストが比較され、mapareaテーブルには存在するがmaparealinkには存在しないアイテムが取得されます(私が見ているアイテムのIDによって制約されます)。
var unusedAreas = availableAreas.Except(currentAreas).ToList();
リストは正常に戻ったようですが、上記のExcept.tolistの結果に基づいて、mapareaオブジェクトのリストを返す必要があります。
私はこれができると思った:
var mapareas = (from e in _entities.MapAreas
where unusedAreas.Contains(e.areaId)
select e).ToList();
I am getting an ambiguous invocation on the where & "Cannot resolve method Contains(int)" on the e.areaId.
Ive tried using:
var unusedAreas = availableAreas.Except(currentAreas).ToArray();
No Joy.. Can anyone help me out here - I am guessing I must be missing a fundamental basic here.
many thanks