c# - 链接服务器和 Entity Framework 。还有其他选择吗?

标签 c# sql-server entity-framework

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

架构:

只有一个 Web 前端,但有多个数据库分布在世界各地(每个司法管辖区)。当前的解决方案已将服务器从中央数据库链接到所有其他实例。一些司法管辖区受防火墙保护,但防火墙上有一条异常(exception)规则,允许从中央数据库服务器连接到司法管辖区的 SQL Server。不允许其他连接。

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

我想将它迁移到 Entity Framework ,如果我使用相同的架构,它会工作。

现在的问题是:是否有任何其他方法可以在不创建/维护这些链接数据库的情况下实现此目的以达到相同的结果?

最佳答案

不,从 EF 6.1 开始没有比这更简单的了。

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

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

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

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

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

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

关于c# - 链接服务器和 Entity Framework 。还有其他选择吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25133903/

相关文章:

c# - ORA-01005 : null password given; logon denied

c# - 为什么我无法在 visual studio 2012 pro 中将用户控件加载到我的工具箱?

android - 连接到 SQL Server 并在应用程序中显示数据

asp.net-mvc - 通过使用 EF 4.1 DBContext 为 SaveChanges 分配事件处理程序来实现 OnContextCreated 以进行审计

c# - 运算符 '>' 不能应用于查询中类型为 'string' 和 'string' 的操作数

c# - 如何在 VS Code 中快速添加缺少的命名空间?

c# - 这会导致集合中的两个绑定(bind)绑定(bind)到同一个属性。参数名称 : binding error in c#?

sql-server - SQL Compact Edition 的类似 Access 的编辑器

sql - 删除 SQL Server 中的大量表

database - 默认 ASP.NET MVC 3 项目帐户 Controller 如何工作