gpt4 book ai didi

c# - Entity Framework - 通过拆分使大型 edmx 表更易于管理?

转载 作者:行者123 更新时间:2023-11-30 18:41:10 27 4
gpt4 key购买 nike

我认为这是给猫剥皮的最佳技术或最佳方法的问题!

想象一下上面有项目(菜单选项)的菜单。我有一个名为 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/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com