跨多个edmx文件共享实体类型

时间:2012-09-28 10:40:19

标签: entity-framework poco

我们正在将实体框架4与POCO实体生成器一起使用。到目前为止,我们只有一个.edmx文件,但由于它的当前大小(超过100个实体),我们遇到了性能问题。

我知道我们应该将其分解为一系列.edmx文件,这有一个例外。我们希望以某种方式在两个或更多这些上下文中共享某些实体类型。例如,在我们的模型中,User类与许多其他不相关的实体相关联。

所以有可能有一个安全模型,它有自己的.edmx和命名空间用于生成的POCO,但是在另一个.emdx中使用它吗?如果不是我担心我们将有多个类建模相同的数据库表,需要与数据库同步更新。我会说那是不可行的。 (我们首先使用数据库)。

显然,如果我正在咆哮错误的树,请告诉我!

1 个答案:

答案 0 :(得分:2)

理论上,您可以将单个POCO类与多个EDMX映射一起使用,因为映射和类必须仅匹配属性的名称和名称/类型。在实践中,这有一些局限性。我能想到的只有几个:

  • 除非您为每个EDMX修改生成器并确保每个实体仅由单个EDMX的单个生成器生成,否则不能使用此方法使用自动代码生成器。这直接指向第二个限制。
  • 每个EDMX中的实体必须完全相同。包括导航属性。如果不是,如果不构建自己的代码生成解决方案,您将无法生成它。更糟糕的是,如果动态代理要求具有唯一名称的类仅映射一次。如果同一个类有两个或多个不同的映射,则无法使用动态代理(延迟加载,动态更改跟踪),每个应用程序运行时只有一个映射。