.net - 如何使用 Entity Framework 4.1 Fluent API 映射枚举?

标签 .net enums entity-framework-4.1

我在 EF 的工作表之间有些迷茫……就像自由世界的其他人一样,我确实需要在我的 POCO 中使用枚举。和我交谈过的许多人一样,我非常喜欢使用代码映射枚举,只是因为我不太喜欢图片。

我的窘境是,我提取的几乎每篇文章都得到相互矛盾的信息。筛选出人们为尝试解决 EF 不足而发布的自定义实现或“扩展”变得更加困难。

EF June CTP宣布支持枚举和空间类型,但似乎只有在使用设计器时才支持?此外,6 月 CTP 是 EF 4.1 Update 1 的一部分还是仍然不是 RTM?

如果有一种方法可以使用 Fluent API 支持枚举,我将感激任何能帮助我或引导我朝着正确方向前进的人!

谢谢,杰森

最佳答案

当前 EF 版本不支持枚举。它们在 2011 年 6 月的 CTP 中支持 EDMX 和代码映射,但 CTP 没有生产版本 - 它不是 EF 4.1 Update 1 或即将推出的 EF 4.2 的一部分。恕我直言,如果我们非常幸运,它将成为 .NET 4.5 的一部分。

现在使用枚举最简单的方法是使用两个属性:从映射 int 转换而来的映射 int 和非映射 enum 属性:

public class Test
{
    public int EnumValue { get; set; }
    public EnumType Value 
    {
        get { return (EnumType)EnumValue; }
        set { EnumValue = (int)value; }
    }
}

使用此方法时,您不能在 Linq to entities 查询中使用枚举。

关于.net - 如何使用 Entity Framework 4.1 Fluent API 映射枚举?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7490530/

相关文章:

.net - .Net Thread.Suspend已过时。寻找替代品

.net - 获取枚举值的 GetFields 方法

c++ - 枚举类范围解析运算符

将枚举定义转换为无符号整数

.net - 输出使用 Entity Framework 4.1 Code-First 创建 SQL

ef-code-first - EF 4.1 Code First 的复合 key

c# - 将网格添加到 ItemsControl 的 ItemsPanelTemplate

c# - 如何在 C# 中生成 0 到 1 之间的随机数?

c# - 为什么 Void 是一个结构?