Unitというタイプのエンティティのコレクション、タイプUnitPropのエンティティのコレクション、および次のように定義されたPropというタイプのエンティティのコレクション(簡略化) があります。
class Unit
{
int ID;
ICollection<UnitProp> UnitProps;
}
class UnitProp
{
int ID;
int UnitID;
Unit Unit;
int PropID;
Prop Prop;
}
class Prop
{
int ID;
string Description;
}
コレクションをクエリするために必要な of ( RequiredProps と呼ばれる)がList
ありますProp
。RequiredPropsで指定されたすべての s を持つという条件を満たす sのコレクションを返したいと考えています。Unit
Prop
私は次のようにクエリを書きました:
var result = ctx.Units
.Where(x => RequiredProps.AsEnumerable()
.Except(x.UnitProps.Select(y => y.Prop))
.Count() == 0)
.ToList();
もちろん、これは Entities への Linq であるため、クエリは例外をスローします: タイプ 'Prop' の定数値を作成できません。このコンテキストでは、プリミティブ型 (Int32、String、および Guid など) のみがサポートされます。
私もこれを試しました:
var result = ctx.Units
.Where(x => RequiredProps.Select(y => y.ID)
.Except(x.UnitProps
.Select(y => y.Prop)
.Select(y => y.ID))
.Count() == 0)
.ToList();
...しかし、同じ例外が発生しました。
提案?