sql-server - 使 Entity Framework 模型跨越多个数据库

标签 sql-server entity-framework multiple-databases synonym

做这样的事情是否有效

为 [AnotherDatabase].dbo.[MyTable] 创建同义词 [dbo].[MyTable]

然后修改 Entity Framework 的 edmx 文件以像读取任何其他表一样读取此对象?

我做了一个快速示例测试,它似乎适合选择和更新,但我想知道是否有任何理由我不应该这样做

我通过创建一个指向第二个数据库的 edmx 文件,在其中构建实体,然后将定义复制/粘贴到第一个数据库的 edmx 文件中来获取表定义。

更新

如果有人感兴趣,我写了我如何制作跨多个数据库的 edmx 文件 here 。它包括用于生成同义词和合并 edmx 文件的脚本。

最佳答案

如果您进行了测试并且成功,您可能会展示一些其他人不知道的东西。到目前为止,我总是回答此类问题:不可能将单个模型与两个数据库一起使用(有一些基于隐藏第二个数据库中的表的 View 的更丑陋的解决方法)。现在我知道了两种解决方法。

此方法的唯一缺点是,如果您运行从数据库更新模型,则对 EDMX 的 SSDL 部分手动进行的所有更改始终会丢失。这意味着要么手动开发 EDMX(这是一项相当艰苦的工作),要么使用一些工具/脚本,在每次更新数据库后添加您的更改。

关于sql-server - 使 Entity Framework 模型跨越多个数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6036357/

相关文章:

c# - 如何将结构数据类型从 Java 传递到 MS SQL 数据库

c# - 使用 LINQ 获取每第 n 行

NHibernate 与 Entity Framework 4.1 中的数据库支持

SQL Azure 链接数据库

Postgresql PITR 备份 : best practices to handle multiple databases?

php - 在php中解密密码

sql-server - SQL Server Management Studio 每隔几秒挂一次

mysql - 动态 SQL = [错误] 42000 - [SQL Server] '01' 附近的语法不正确

entity-framework - 自数据库创建以来,支持 'DataContext' 上下文的模型已更改

hibernate - Spring:HibernateTransactionManager 处理多个数据源