【问题标题】:How do I replace an Int property with an Enum in Entity Framework?如何在实体框架中用枚举替换 Int 属性?
【发布时间】:2010-09-26 01:47:57
【问题描述】:

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

【问题讨论】:

    标签: c# .net entity-framework


    【解决方案1】:

    间接的,比如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 数据服务。

    【讨论】:

    • 我用了同样的方法,效果很好。直到 EFF 默认支持枚举...
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-12-04
    • 2013-02-04
    • 2015-06-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多