相关疑难解决方法(0)

模拟交叉上下文连接 - LINQ/C#

这是问题所在:

我有2个数据上下文,我想加入.现在我知道LINQ不允许从一个上下文到另一个上下文的连接,我知道2个可能的解决方案是创建单个datacontext或者有2个单独的查询(这就是我现在正在做的事情).但是,我想要做的是"模拟"一个连接.

这是我尝试过的.

using (var _baseDataContext = Instance)
{
    var query = from a in _baseDataContext.Account.ACCOUNTs
                where a.STR_ACCOUNT_NUMBER.ToString() == accountID
                join app in _baseDataContext.Account.APPLICATIONs on a.GUID_ACCOUNT_ID equals
                            app.GUID_ACCOUNT
                join l in GetLoans() on app.GUID_APPLICATION equals l.GUID_APPLICATION
                select l.GUID_LOAN;

    return query.Count() > 0 ? query.First() : Guid.Empty;
}

private static IQueryable<LOAN> GetLoans()
{
    using (var _baseDataContext = Instance)
    {
        return (from l in _baseDataContext.Loan.LOANs
                select l).AsQueryable();
    }
}
Run Code Online (Sandbox Code Playgroud)

在运行时我得到了

System.InvalidOperationException:查询包含对在不同数据上下文中定义的项的引用

编辑:

工作方案:

using (var _baseDataContext = Instance)
{
    var query = …
Run Code Online (Sandbox Code Playgroud)

c# linq datacontext entity-framework

20
推荐指数
1
解决办法
3万
查看次数

标签 统计

c# ×1

datacontext ×1

entity-framework ×1

linq ×1