【发布时间】:2016-10-18 08:12:00
【问题描述】:
我正在尝试使用 EF 6 从两个不同的表中获取数据,它是一个 asp.net mvc 5 项目,其中使用了 Identity 2.0,但是当我加入两个表时,我收到两个实体的上下文的错误不同,但事实并非如此,这是我的代码:
public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
{
public ApplicationDbContext()
: base("DefaultConnection", throwIfV1Schema: false)
{
}
public DbSet<UserAccountStatus> UserAccountStatuss { get; set;}
public static ApplicationDbContext Create()
{
return new ApplicationDbContext();
}
}
这是我的 linq 查询:
var result = (from user in DbContext.Users
join accountStatus in DbContext.UserAccountStatuss on user.Id equals accountStatus.UserId
where user.Email == email
select accountStatus.AccountEnabled).FirstOrDefault();
我的 DbContext 属性:
public ApplicationDbContext DbContext
{
get
{
return _dbContext ?? ApplicationDbContext.Create();
}
private set
{
_dbContext = value;
}
}
确切的错误是:
指定的 LINQ 表达式包含对与不同上下文关联的查询的引用。
这不是重复的,我见过其他问题,这些用户实际上是在尝试不同的上下文,但就我而言,我有一个。
【问题讨论】:
-
好像你的
DBContext被实例化了两次。你能验证你的实例化逻辑是如何工作的吗? -
@CamBruce 它已发布在问题中,
标签: c# entity-framework linq asp.net-mvc-5 asp.net-identity-2