【发布时间】:2010-09-26 01:47:57
【问题描述】:
我有一个实体类,它的属性具有数据类型 Int 的基础 db 列,但实际上我希望这个属性是 Enum。有没有办法指定这个属性返回一个枚举?
【问题讨论】:
标签: c# .net entity-framework
我有一个实体类,它的属性具有数据类型 Int 的基础 db 列,但实际上我希望这个属性是 Enum。有没有办法指定这个属性返回一个枚举?
【问题讨论】:
标签: c# .net entity-framework
间接的,比如so。
就我个人而言,我将 storage int 设为公开(例如 DbFoo,其中 enum 属性为 Foo)——这样我仍然可以针对列编写 lambdas 以在数据库中执行,例如:
where row.DbFoo == SomeConstant
如果您不公开存储值,则无法做到这一点。您同样可以将其保留在内部,并在上下文中使用一些方法来进行过滤......这是我今天早些时候写的:
public IOrderedQueryable<User> Administrators
{
get { return Users.Where(x => x.DbUserType == User.UserTypeAdmin)
.OrderBy(x => x.Name);
}
User.UserTypeAdmin 是我的内部常量。在这种情况下,我不能使用可区分的子类,因为它会干扰 ADO.NET 数据服务。
【讨论】: