2

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

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

那么,是否有可能拥有一个安全模型,它具有自己的 .edmx 和用于生成 POCO 的命名空间,但在另一个 .emdx 中使用它?如果不是,我担心我们会有多个类对同一个数据库表进行建模,这些表需要与数据库同步更新。我会说那是行不通的。(我们使用数据库优先)。

显然,如果我叫错了树,请告诉我!

4

1 回答 1

2

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

  • 除非您修改每个 EDMX 的生成器,并确保每个实体都将由单个 EDMX 的单个生成器生成,否则您不能通过这种方法使用自动代码生成器。这直接指向了第二个限制。
  • 每个 EDMX 中的实体必须完全相同。包括导航属性。如果不是,您将无法在不构建自己的代码生成解决方案的情况下生成它。如果动态代理要求具有唯一名称的类只映射一次,那就更糟了。如果同一类有两个或多个不同的映射,您将无法使用动态代理(延迟加载、动态更改跟踪),每个应用程序运行只有一个映射。
于 2012-09-28T17:31:36.660 回答