asp.net - 用于跨数据库表的 LINQ to SQL。还是查看?

标签 asp.net sql asp.net-mvc linq linq-to-sql

我有一个消息表和一个用户表。两者都位于不同的数据库中。 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/

相关文章:

asp.net-mvc - 在 Telerik mvc 网格中创建序列号列

asp.net-mvc - 单选按钮更改事件

c# - 如何使用javascript将文本框数据保存到文件

c# - 如何在母版页的第一个页面加载中只调用一次方法

asp.net - 为什么我的 ASP.NET 页面会注入(inject)这个 WebResource.axd Javascript 文件?

asp.net - .NET 4.0 ObjectCache 的线程安全和范围管理

java - 一次将SQL脚本执行到oracle db中

mysql - 如何在 SQL 中选择具有特定条件的 n% 随机行?

SQL - 两个不同列的结果的部分总和

asp.net-mvc - 如何测试 ASP.Net MVC View ?