繁体   English   中英

实体框架 - 通过拆分使大型edmx表更易于管理?

[英]Entity Framework - making a large edmx table more manageable by splitting?

我认为这是一个关于皮肤猫的最佳技术或最佳方法的问题!

想象一下菜单上有项目(菜单选项)。 我有一个名为MenuItem的表,例如“Spaghetti Bolognese”,除了更好的描述和图片之外,它还有许多与之相关的其他信息。 例如。

  • 基本信息(名称,描述,图片等)
  • 营养信息(约15列)
  • 过敏信息(约16列)
  • 膳食信息(另外7列)(宗教等)

因为现在我把它全部放在SQL服务器的一个表中,这对我来说是逻辑数据库设计,因为它不重复,尽管它使表的字段列表比我想要的更长。 关于不断扩展数据库表,我已经感觉有点不好了。 但现在我们还要添加“食谱”信息,大约另外7列。

我正在使用Entity Framework 4.latest,并且觉得有可能帮助我在EDMX中拆分它的功能? (那是ComplexTypes的吗?)或者我只需要在我调用的ViewModel类中执行此操作?

我认为我在我的代码中使用后更好地隔离事物就像是

  • MenuItem.Recipe.Ingredients
  • MenuItem.Nutrition.Fat
  • 等等

复杂类型可以帮助您,但要注意复杂类型不能包含导航属性,不能为null并始终使用实体加载。 其他可能性是使用表拆分 - 这将允许您将多个一对一相关实体映射到同一个表。 表拆分的主要特点是:

  • 实体只能共享主键属性
  • 有一个主要实体,其他被视为关系(导航属性)
  • 相关实体必须存在 - 它们不是可选的,因此当您插入新的主实体时,您必须插入这些相关实体,即使它们是空的
  • 必须使用急切,懒惰或显式加载来加载相关实体

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM