链接的服务器和实体框架。还有其他选择

时间:2014-08-05 08:04:56

标签: c# sql-server entity-framework

我必须重写ASP.NET webforms日志查看器应用程序。新版本基于ASP.NET MVC。

架构:

有一个网络前端,但世界各地(每个辖区)都有多个数据库。当前的解决方案已将服务器从中央数据库链接到所有其他实例。一些管辖区域受防火墙保护,但防火墙上有一个例外规则,允许从中央数据库服务器到管辖区域SQL Server的连接。不允许其他任何连接。

他们在当前解决方案中所做的是,他们在中央服务器上创建了一个单独的数据库,其中包含通过链接服务器访问远程数据库表的视图。如上所述,有一个UI实例。用户可以选择数据库实例来检查日志。

我想将其迁移到实体框架,如果我使用相同的架构,它将会起作用。

现在的问题是:在没有创建/维护这些链接数据库以实现相同结果的情况下,还有其他方法可以实现这一目标吗?

1 个答案:

答案 0 :(得分:2)

不,没有比EF 6.1更简单的了。

如果在EF中支持同义词,那么您可以在中央数据库中为链接数据库中的所有表创建同义词(当然,在不同的模式中)。这会占用一些开销,因为同义词比视图更容易维护,您可以使用DataTools项目轻松地为中央数据库执行此操作。

同义词支持目前为proposal for a next version of EF

至于现在,为什么不在中央数据库中创建和维护视图?每个链接服务器/数据库一个模式:

[jurisdiction1].[vTableA]
[jurisdiction1].[vTableB]
...
[jurisdictionN].[vTableA]

与同义词类似,但缺点是您需要为视图编写更多代码。 您仍然可以使用DataTools进行版本控制,更改跟踪以及提供增量更新脚本。

如果您认为现在很难管理您的数据库,我建议您查看DataTools。它们使模式管理更容易处理。