我有一个与 CustomerGroups 和 Product 相关的表 Discounts。
键:
- 产品具有密钥 int ProductID。
- Discount 具有键 int DiscountID。
- CustomerGroup 具有密钥 int CustomerGroupID。
关系:
- Discounts 和 CustomerGroups 之间的关系是一对多且可为空的(折扣有一个可为空的 CustomerGroup)。
- Discounts 和 Products 之间的关系是多对多的,并且通过连接表 Discount_Products 进行。该表有一个由两个整数 DiscountID 和 ProductID 组成的复合键。该连接表在我的模型图中自动不可见,并且我得到一个两端都是 * 的关系。
我有一个使用 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”类型的常量值。此上下文仅支持原始类型或枚举类型。
我究竟做错了什么?