【问题标题】:Enums and lookup tables in Entity Framwork Database first首先在实体框架数据库中枚举和查找表
【发布时间】:2014-06-01 08:43:10
【问题描述】:

我使用的是实体框架数据库优先方法,并且我使用枚举作为查找表。 在数据库中,“普通”表具有对查找表的引用,例如:

宠物桌:

  • 身份证
  • 姓名
  • 宠物类型标识

宠物类型表:

  • 身份证
  • 姓名

当我从 EF 进行映射时,我排除了查找表。我正在使用 T4 模板从数据库查找表中生成枚举。

我的问题: 从我的 EF 模型中排除查找表是一种不好的做法吗?

【问题讨论】:

  • 两者都不是。如果您需要从您的一项业务服务或导航属性访问查找表,它可能只是丢失了。我们首先在这里做了很多数据库,我个人总是包含这些表以及使用 T4 脚本创建一个枚举
  • 感谢您的回答。我以为我是唯一一个首先使用数据库的人。我有一个疑问,我将 Pet 模型中的属性 PetTypeId 转换为枚举,PetTypeId 现在是 PetTypeEnum 类型,而不是 int。如果我在我的 EF 模型中包含查找表 PetType,则 PetTypeId(在 Pet 模型中)必须是 int 类型,因为它引用了 int 类型的属性(PetType 中的 Id)。另外,我不确定是否需要使用查找表的导航属性。

标签: entity-framework enums lookup-tables database-first


【解决方案1】:

最后我决定将查找表映射到 EF 模型,并将 Pet 表中的 FK 属性 (PetTypeId) 和 PetType 表中的 PK 属性 (Id) 转换为枚举。

【讨论】:

    猜你喜欢
    • 2013-07-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-10
    • 1970-01-01
    • 2011-09-09
    • 2015-11-11
    • 1970-01-01
    相关资源
    最近更新 更多