Linq to sql 通过链接服务器访问Linq到SQL DBML?
我在一个命名实例中的单个数据库上有一个DBML。该实例有一个链接到另一个服务器/实例中的另一个MSSQL数据库的服务器。实例和数据库都具有相同的dbo级别用户。这两个数据库都是MSSQL 2008 我有一些C代码框架3.5,它使用DBML访问数据库上的表、视图和存储过程。我现在需要访问数据库B上的一个表。我的代码通过链接的服务器连接访问表/实体的最聪明的方式是什么Linq to sql 通过链接服务器访问Linq到SQL DBML?,linq-to-sql,sql-server-2008,linked-server,Linq To Sql,Sql Server 2008,Linked Server,我在一个命名实例中的单个数据库上有一个DBML。该实例有一个链接到另一个服务器/实例中的另一个MSSQL数据库的服务器。实例和数据库都具有相同的dbo级别用户。这两个数据库都是MSSQL 2008 我有一些C代码框架3.5,它使用DBML访问数据库上的表、视图和存储过程。我现在需要访问数据库B上的一个表。我的代码通过链接的服务器连接访问表/实体的最聪明的方式是什么 谢谢。一种干净的方法是在数据库中创建视图,封装另一端的enities。您必须在.dbml文件中手动定义这些实体的主键和关系。完成此操
谢谢。一种干净的方法是在数据库中创建视图,封装另一端的enities。您必须在.dbml文件中手动定义这些实体的主键和关系。完成此操作后,只要DTC服务在数据库a上运行,它们就可以像任何其他具有CRUD功能的表一样工作。尝试将链接服务器添加到本地:
EXEC sp_addlinkedserver
@server=N'SERVER',
@srvproduct=N'',
@provider=N'SQLNCLI',
@datasrc=N'SERVER';
SELECT * FROM sys.servers
EXEC sp_addlinkedsrvlogin '<SERVER>', 'false', '<DOMAIN>\<USERNAME>', '<USER>', '<PASSWORD>';
我在Entity Framework和LINQ To SQL中使用了SQL同义词,您可以创建一个SQL Synonnym来指向链接的服务器对象,如下所示: 然后执行SQL查询:
Northwnd db = new Northwnd(@"c:\northwnd.mdf");
IEnumerable<Customer> results = db.ExecuteQuery<Customer>
("SELECT contactname FROM customersSynonym WHERE city = {0}",
"London");
您可以阅读文档,也可以阅读类似的文档,但使用Entity Framework,它使用相同的原理,使用SQL同义词。感谢您的回复。我的问题是我不能对数据库模式进行任何更改。这是一个更大的问题。您可以请求更改吗?如果没有,我真的看不到任何其他方式,除非您可以从另一个dbml上下文或连接与DatabaseB对话。
Northwnd db = new Northwnd(@"c:\northwnd.mdf");
IEnumerable<Customer> results = db.ExecuteQuery<Customer>
("SELECT contactname FROM customersSynonym WHERE city = {0}",
"London");