EntityFramework:切片还是不切片?

时间:2010-12-29 20:57:36

标签: c# entity-framework

所以我刚刚开始使用Entity Framework。我正在使用一个非常大的现有数据库。我发现自己想要使用EF来创建整个数据库“切片”的模型。这些切片对应于应用的一个方面。这是查看它的正确方法,还是我应该尝试在1 EDMX中建模整个数据库?

让我给你一个虚构的例子:

假设此数据库包含的许多内容中有1个是客户帐单信息。我觉得我想创建一个EF模型,只关注客户计费模块需要与之交互的表。 (那么该模型不会用于应用程序中的其他模块,相反,那些相同的表可能会出现在其他小型EF模型中)。这将允许我利用EF的概念模型特性(继承等)来构建一个对客户账单正确的视图,而不用担心该模型的影响,比如客户支持(即使2个模块共享一些表)

这听起来不错吗?

2 个答案:

答案 0 :(得分:1)

我更愿意使用切片方法,原因如下:

  • 如果你有一个包含大量表的海量数据库,那么很难管理大量的实体模型。
  • 维护应用程序/域特定实体更容易,因为实体框架不是实体映射表,您可以创建自定义实体,还可以跨实体组合和拆分表。

答案 1 :(得分:1)

这对我来说是对的。毕竟,实体模型的目的是在a level of abstraction that's appropriate处为所需的业务逻辑提供一组具有持久性的业务对象。

您绝对应该创建支持应用程序模块的实体模型,而不是复制底层数据库模式的模型。如上面的链接所述,将逻辑与持久性分离是EF的主要目的之一。