我使用 EF 5 进行迁移,代码优先。一切都运行得很好,但有一些问题我想解决。
让我们从一个简单的例子开始。假设我有一个用户表和一个用户类型表。用户类型表是我的应用程序中的枚举/查找表。因此,用户表有一个 UserTypeId 列和一个 UserType 的外键引用等。在我的 poco 中,我有一个名为 UserType 的属性,它具有枚举类型。
要将初始值添加到 UserType 表(或稍后添加/更改值)并在初始迁移器等中创建表。我需要一个 UserType 表 poco 来表示数据库中的实际表并在 map 文件。我将 User poco 中的 UserType 属性映射到 UserType poco 中的 UserTypeId 。所以现在我有一个用于代码优先/迁移/上下文映射等的 poco,并且我有一个枚举。两者不能有相同的名称,所以我是否有一个名为 UserType 的 poco 和其他用于枚举的内容,或者让 UserType 的 poco 为 UserTypeTable 或其他内容?
然而,更重要的是,我是否遗漏了代码首先如何工作的一些关键元素?我尝试了上面的示例,运行了 Add-Migration,但它没有添加枚举的查找表。
最佳答案
如果我正确理解了您的问题以及您的困惑,
Enums support has nothing to do with lookup tables on the Db side.
枚举只是允许您在类中拥有枚举属性,并且基本上被转换为“int”-s - 所以里面没有其他东西了。
有关更多信息,您可能想观看来自 Julie Lerman on Enum-s support 的视频
希望这有帮助
关于c# - Entity Framework 5 枚举命名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10145165/