[Flags]
public enum RuleCategories
{
None = 0x0000,
ApplicantBased = 0x0001,
LocationBased = 0x0002,
PolicyBased = 0x0004,
PropertyBased = 0x0008
}
当我尝试使用LINQ to实体检索对象时
var allRules = from r in context.Rules
where ((r.CategoryEnum & (int)categories) != 0)
select r;
无法创建“Closure type”类型的常量值。在此上下文中仅支持基元类型('如Int32、String和Guid')。
或者,如果我尝试将实体值强制转换为枚举
var allRules = from r in context.Rules
where (((RuleCategories)r.CategoryEnum & categories) != 0)
select r;
我得到一个不同的错误:
无法将类型“System.Int32”强制转换为类型“RuleCategories”。LINQ to Entities只支持转换实体数据模型基元类型。
谢谢