我有一个消息表和一个用户表。两者都位于不同的数据库中。 Message表中有一个userID,用于连接到User表以查找诸如userName之类的信息。
如何在 LINQ to SQL 中创建它?我似乎无法进行跨数据库连接。
我应该在数据库中创建一个 View 并使用它吗?那行得通吗? CRUD 反对它会发生什么?例如。如果我删除一条消息 - 它肯定不会删除用户吗?我想它会抛出一个错误。
该怎么办?我无法将表移动到同一个数据库中!
最佳答案
如果您已向配置的用户授予对这两个数据库的访问权限,则 View 将起作用。您需要使用两点表示法。顺便说一句,只有当两个数据库位于同一服务器上时,这才有效。
create view vwUserMessages as
select * from db1.dbo.Users as users
inner join db2.dbo.Messages as msg on msg.UserID = users.id
对于 CRUD: View (通常)仅用于读取:直接对相关表进行更新等,或使用存储过程:
create proc pdeleteUserMessages (@UserID int) as
begin trans
delete db2.dbo.Messages where userid = @UserID
delete db1.dbo.Users where id = @UserID
commit trans
go
关于asp.net - 用于跨数据库表的 LINQ to SQL。还是查看?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2689676/