9
所以我有这样的代码:只有基本类型或枚举类型在这方面的支持
public int saleCount(List<Shift> shifts) {
var query = (
from x in database.ItemSales
where shifts.Any(y => y.ID == x.shiftID)
select x.SalesCount
);
return query.Sum();
}
不幸的是,它抛出这个错误:
Unable to create a constant value of type 'Shift'.
Only primitive types or enumeration types are supported in this context.
所以这里是我定义的转变,这只是一个正常的实体框架代码第一个对象:
[Table("Shifts")]
public class Shift : MPropertyAsStringSettable {
[Key]
[DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
public int ID { get; set; }
public int SiteID { get; set; }
public string ShiftID_In_POS { get; set; }
public DateTime ShiftDate { get; set; }
}
我想问题是,我使用Shift o在Linq查询中查找。我正在对“Shift”列表执行“任意”操作。
一个可能的解决方案是将列表更改为可能是集合或其他东西,毕竟,我在其他地方用linq查询加载它,但签名是什么?
是!工作得很好,我打算建议将List更改为其他类型的集合,但这非常棒。 – Bill