如何使用entity framework中的枚举替换Int属性?

我有一个实体类,其属性具有数据类型为Int的基础db列,但实际上我希望此属性为Enum。 有没有办法指定此属性返回枚举?

间接地,像这样 。

就个人而言,我将存储int公开(例如,作为DbFoo ,其中枚举属性为Foo ) – 这样我仍然可以对列执行lambdas以在DB上执行,例如:

 where row.DbFoo == SomeConstant 

如果您不公开存储值,则不能干净利落地执行此操作。 你可以同样把它留在内部,并在上下文中有一些方法来进行过滤……这是我今天早些时候写的一个:

 public IOrderedQueryable Administrators { get { return Users.Where(x => x.DbUserType == User.UserTypeAdmin) .OrderBy(x => x.Name); } 

User.UserTypeAdmin是我的内部常量。 在这种情况下,我无法使用受歧视的子类,因为它干扰了ADO.NET数据服务。