我认为这是给猫剥皮的最佳技术或最佳方法的问题!
想象一下上面有项目(菜单选项)的菜单。我有一个名为 MenuItem 的表,例如“Spaghetti Bolognese”,除了更好的描述和图片之外,它还有很多其他相关信息。 例如。
- 基本信息(名称、描述、图片等)
- 营养信息(约 15 列)
- 过敏信息(约 16 列)
- 饮食信息(另外 7 列)(宗教等)
目前,我将所有内容都放在 SQL Server 的one 表中,这对我来说是逻辑数据库设计,因为它不会重复,尽管它为 table 比我想要的长。我已经对不断扩展数据库表感到有点不爽了。但现在我们还想添加“食谱”信息,大约另外 7 列。
我正在使用 Entity Framework 4.latest,感觉可能有功能可以帮助我在 EDMX 中将其拆分? (这就是 ComplexTypes 的含义吗?)还是我只需要在我调用的 ViewModel 类中执行此操作?
我认为在我的代码中使用它来更好地隔离事物之后,我想做的是
- 菜单项.食谱.成分
- 菜单项.营养.脂肪
- 等等
最佳答案
复杂类型可以帮助您,但请注意复杂类型不能包含导航属性,不能为 null 并且始终与实体一起加载。其他可能性是使用 table splitting - 这将允许您将多个一对一相关的实体映射到同一个表。分表的主要特点是:
- 实体只能共享主键属性
- 有一个主要实体,其他被视为关系(导航属性)
- 相关实体必须存在 - 它们不是可选的,因此当您插入新的主要实体时,即使它们为空,您也必须插入这些相关实体
- 相关实体必须以预加载、惰性加载或显式加载方式加载
关于c# - Entity Framework - 通过拆分使大型 edmx 表更易于管理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7187782/