【发布时间】:2015-11-04 17:24:54
【问题描述】:
我正在使用 LINQ 从我的 EF 上下文以及 Asp .Net Identity 2.0 中检索数据 - 两者都位于同一个 MS SQL Server 数据库中。
我的问题是 LINQ 将它们视为两种不同的数据上下文情况,无法处理查询。
"The specified LINQ expression contains references to queries that are associated with different contexts."
我想要实现的是从 EF 表中简单返回 10 个最重要的项目(我在代码摘录中跳过了这个),之前按 ASP .NET 标识表中的用户名排序。
我在 StackOverflow 上看到过一些此问题的案例,但我无法在我的案例中应用任何解决方案。
首选的解决方案当然是不下载所有表格数据并在服务器上进行排序。
有问题的查询:
var dbDataSorted = from entry in dbData
join user in this.UserManager.Users
on entry.UserId equals new Guid(user.Id)
orderby user.UserName ascending
select entry;
return dbDataSorted;
【问题讨论】:
-
您可以使用 2 个不同的上下文进行基于服务器的连接,即使它们使用同一个数据库,每个上下文也需要了解查询中的所有表。
-
这里实现的一个丑陋的方法是编写一个存储过程,它将连接两个数据库表其他选项在this答案中
标签: c# sql asp.net linq entity-framework