Entity framework 4 指定的LINQ表达式包含对与不同上下文关联的查询的引用
尝试在查询中连接多个表时出错: 指定的LINQ表达式包含对与不同上下文关联的查询的引用 这很让人困惑,因为它让人觉得我在查询中使用了不同的上下文,但我没有:Entity framework 4 指定的LINQ表达式包含对与不同上下文关联的查询的引用,entity-framework-4,code-first,Entity Framework 4,Code First,尝试在查询中连接多个表时出错: 指定的LINQ表达式包含对与不同上下文关联的查询的引用 这很让人困惑,因为它让人觉得我在查询中使用了不同的上下文,但我没有: public static IQueryable<Company> GetAll(bool supportsMMAT) { return from c in Context.Companies join v in Co
public static IQueryable<Company> GetAll(bool supportsMMAT)
{
return from c in Context.Companies
join v in Context.Vehicles on c.CompanyIdNumber equals v.CompanyIdNumber
join mt in Context.ModemTypes on v.ModemTypeId equals mt.Id
where !c.CompanyShutOff
&& (!supportsMMAT || mt.Model == "MMAT")
select c;
}
publicstaticiqueryable GetAll(bool-supportsMMAT)
{
在上下文中从c返回。公司
在上下文中加入v。c.CompanyIdNumber上的车辆数等于v.CompanyIdNumber
在v.ModemTypeId上的Context.ModemTypes中加入mt等于mt.Id
哪里!c公司停车场
&&(!SupportsMat | | mt.Model==“MMAT”)
选择c;
}
有什么想法吗?我使用的是EF4 CTP5代码优先的方法,如果这有什么区别的话…如果您的上下文属性每次都返回一个新实例,就会发生这种情况。您的上下文属性每次调用都返回一个新的上下文吗?是的,这正是它所做的,我的“ContextWorker”我用来静态访问数据上下文的类用于web应用程序,并将上下文存储在httpruntime中。然而,我是从一个测试用例运行它的,所以httpruntime不可用,它正在创建新的上下文。请把你的评论作为一个新的答案,这样我可以给你信用。