我有一个枚举类型叫做 Operation
,像这样:
[Flags]
public enum Operation
{
None = 0,
View = (1 << 0),
Add = (1 << 1),
Edit = (1 << 2),
Delete = (1 << 3),
ReservedA = (1 << 4),
ReservedB = (1 << 5),
Admin = (View | Add | Edit | Delete)
}
表格permission
包含一个operations
列。该表映射到以下类:
[Table("rolepermission")]
public class Permission : IComparable
{
private int _id = 0;
private Operation _operations = Operation.None;
private List<UserRole> _roles = null;
public Permission()
{
_roles = new List<UserRole>();
}
[Key]
public int Id
{
get { return _id; }
set { _id = value; }
}
[EnumDataType(typeof(Operation))]
public Operation Operations
{
get { return _operations; }
set { _operations = value; }
}
}
但是它不起作用。
有没有一种优雅的方法可以映射它?
我认为创建一个“int”类型的属性并不是最好的方法。
HasFlag
扩展方法尚未得到支持。 - KamyarHasFlag
现在在 EF 6.1 中得到支持。 - maxp