2

我有两个 SQL Server 数据库 (dbInfodbData),我想向我的 .NET 应用程序 (WPF、ASP.NET MVC、...) 添加一个/两个 EF 模型。

问:添加 EF 模型时最好的方法是什么?添加两个模型,每个数据库一个?

  • 添加两个 edmx 模型,每个数据库一个?
  • 使用SQL 同义词为两个数据库添加一个 edmx 模型?
  • 其他版本...
4

1 回答 1

0

这在很大程度上取决于两个数据库之间的交互量。

不过,我强烈希望将它们保存在单独的模型中。一个模型容纳两个数据库会引入许多您希望避免的复杂性和依赖性:

  • 必须定义同义词。
  • 当“其他”数据库发生变化时,您可能必须修改主数据库中的同义词。
  • 如果一个数据库发生变化,您必须更新到整个模型。
  • 数据库(可能)不能有不同的版本(edmx 模型是版本敏感的)。
  • 同义词是指向不同数据库中对象的路径。可以通过移动数据库之一或重命名目标对象来破坏路径。您只会在运行时注意到。
  • 备份/恢复必须同步。

可能还有更多……

然而,可能有一个令人信服的要求可以推翻这些反对意见。如果您想在一个事务中修改两个数据库中的数据,使用同义词和一个上下文(以及一个数据库连接)会更容易。否则,您必须TransactionScope在代码中使用并在数据库服务器上启用 DTC。

于 2012-11-15T14:08:23.783 回答