Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Entity framework 4 指定的LINQ表达式包含对与不同上下文关联的查询的引用_Entity Framework 4_Code First - Fatal编程技术网

Entity framework 4 指定的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

尝试在查询中连接多个表时出错:

指定的LINQ表达式包含对与不同上下文关联的查询的引用

这很让人困惑,因为它让人觉得我在查询中使用了不同的上下文,但我没有:

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不可用,它正在创建新的上下文。请把你的评论作为一个新的答案,这样我可以给你信用。