gpt4 book ai didi

linq-to-entities - 跨多个数据库的 ADO.Net Entity Framework

转载 作者:行者123 更新时间:2023-12-04 07:23:57 25 4
gpt4 key购买 nike

In Linq2Sql you can connect a data context to multiple databases by just adding the database name to the source .

有没有办法在 Linq 2 实体/ADO.net Entity Framework 中实现这一点?可以将某处的数据库名称添加到表名称中吗?

我试图将“架构”从 dbo 更改为 MyDatabase.dbo,但 EF 将其封装到

SELECT FROM [MyDatabase.dbo].[MyTable]

像将 'Schema' 更改为 'MyDatabase].[dbo' 之类的诡计将被转义为
SELECT FROM [MyDatabase]].[dbo].[MyTable]

(注意这两个 ]]。)

最佳答案

一、this isn't officially supported .

您链接到的 LINQ to SQL 答案只是使用数据库服务器进行异构查询的能力。我不明白为什么这对 Entity Framework 不起作用,因为它是数据库服务器功能,而不是任何一个框架的功能。换句话说,LINQ to SQL 仍在处理连接,就好像只涉及一个数据库服务器一样。但是请记住,并非所有数据库服务器都可以执行此操作。

至于在 EDMX 中要更改的内容,请在“SSDL 内容”部分中查找 EntitySet 节点的 Schema 属性。

关于此技术的一个警告是,当您从数据库更新模型时,存储模型将被清除并从头开始替换。因此,您需要重新应用这些更改。这在 LINQ to SQL 中不是问题,因为 LINQ to SQL 根本不支持从数据库自动更新。

更好的替代方法可能是在引用另一个数据库的数据库中创建一个 VIEW 并映射该 View ,而不是直接映射表和另一个数据库。

关于linq-to-entities - 跨多个数据库的 ADO.Net Entity Framework ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/610197/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com