'查询包含对在不同数据上下文中定义的项的引用'尽管dbcontext是相同的

时间:2016-11-16 14:18:22

标签: c# linq dbcontext

public IQueryable<SMMSALESUNIT> GetPersonalSalesUnitQuery()
{
    var q = from r in dax.SMMSALESUNITs
        where r.DATAAREAID == COMPANYID
        && r.ACTIVE == 1
        select r;
}
public IQueryable<SMMSALESUNITMEMBER> GetPersonalSalesUnitMemberQuery()
{
    IQueryable<SMMSALESUNIT> salesUnit = new SMMSALESUNIT().GetPersonalSalesUnitQuery();
    var q = from r in dax.SMMSALESUNITMEMBERs
            join s in salesUnit on r.SALESUNITID equals s.SALESUNITID
            select r;
    return q;
}

q.ToList()上发生以下错误: “查询包含对在不同数据上下文中定义的项的引用”

1 个答案:

答案 0 :(得分:2)

问题(最有可能)在这里:

IQueryable<SMMSALESUNIT> salesUnit = new SMMSALESUNIT().GetPersonalSalesUnitQuery();
dax中使用的

GetPersonalSalesUnitQuery似乎是类SMMSALESUNIT的实例成员。在这里,您可以创建新的SMALLSALESUNIT以及dax的新实例。然后你做

var q = from r in dax.SMMSALESUNITMEMBERs
        join s in salesUnit on r.SALESUNITID equals s.SALESUNITID
        select r;

这是另一个dax,而不是您在上面创建的SMALLSALESUNIT的实例成员。因此,您尝试从两个不同的上下文中加入查询,这些上下文失败。