EF中的模型和数据库

时间:2012-11-15 11:07:34

标签: sql sql-server database entity-framework model

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

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

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

1 个答案:

答案 0 :(得分:0)

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

尽管如此,我更倾向于将它们保存在不同的模型中。容纳两个数据库的一个模型引入了许多您应该避免的复杂性和依赖性:

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

可能更多......

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