CustomerGroups と Product に関連するテーブル、Discounts があります。
キー:
- Product にはキー int ProductID があります。
- 割引にはキー int DiscountID があります。
- CustomerGroup にはキー int CustomerGroupID があります。
関係:
- Discounts と CustomerGroups の間の関係は 1 対多で、null 可能です (Discount には null 可能な CustomerGroup があります)。
- 割引と製品の関係は多対多で、接続テーブルの割引_製品を経由します。そのテーブルには、DiscountID と ProductID の 2 つの int で構成される複合キーがあります。その接続テーブルは、モデル ダイアグラムでは自動的に非表示になり、両端が * である関係が得られます。
EF を使用して入力する変数 Discounts1 があります。
IQueryable<Models.Discount> Discounts1 = _entities.Discounts;
私が望むのは、顧客グループに関連付けられておらず、特定の製品に関連する割引のすべての割引率を求めることです。
私が使用しようとしているlinq式は次のとおりです。
var candidates = (from discount in Discounts1
where (discount.CustomerGroup == null)
&& discount.Products.Contains(product)
select discount.Percentage).ToList();
このコードを実行すると得られるのは、メッセージ付きの NotSupportedException です
タイプ 'Models.Product' の定数値を作成できません。このコンテキストでは、プリミティブ型または列挙型のみがサポートされています。
私は何を間違っていますか?