做这样的事情是否有效
为 [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/