【发布时间】: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