2012-11-15 66 views
2

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

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

  • 添加两个edmx模型,每个数据库一个?
  • 使用SQL Synonyms将两个数据库添加一个edmx模型?
  • 其他版本...
+0

到目前为止,我发现的最大问题是,你受限于你的同义词的限制。这可能会也可能不会成为问题,具体取决于您的服务器设置方式以及您的查询类型。例如,不能在链接服务器上使用“OUTPUT”关键字,因此如果您的同义词指向使用“OUTPUT”的链接服务器上的过程,则会导致错误。 – Rachel

回答

0

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

尽管如此,我强烈希望保持它们在不同的模型。一个包含两个数据库的模型引入了许多错综复杂和依赖关系,您宁愿避免:

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

,可能更多...

但是,有可能是一个引人注目的要求,即吹走这些反对意见。如果您希望在一个事务中修改两个数据库中的数据,使用同义词和一个上下文(以及一个数据库连接)会更容易。否则,您必须在代码中使用TransactionScope,并在数据库服务器上启用DTC。

相关问题