플래그가있는 필드가있는 클래스가 있습니다 (데이터베이스에서 EF로 작성). 필드는 CategoryEnum이라는 열에 int로 데이터베이스에 저장됩니다.Entity Framework에서 플래그 사용 Where 절
수 없습니다 것은 만들 :
[Flags]
public enum RuleCategories
{
None = 0x0000,
ApplicantBased = 0x0001,
LocationBased = 0x0002,
PolicyBased = 0x0004,
PropertyBased = 0x0008
}
내가 엔티티에 LINQ를 사용하여 객체를 검색하려고
이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;
에 엔티티 값을 캐스팅해야 할 경우 :
'RuleCategories를 입력 할 유형'선택 System.Int32 '를 캐스팅 할 수 없습니다. 엔터티에 대한 LINQ는 엔터티 데이터 모델 기본 형식을 캐스팅하는 기능 만 지원합니다.
플래그를 기반으로 엔티티를 어떻게 선택합니까?
감사