这是问题所在:
我有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) 我有来自两个不同数据上下文的两个表.虽然两个表都来自同一个数据库,但存在两个独立的数据文件.
错误信息:
该查询包含对在不同数据上下文中定义的项的引用.
我怎么能绕过这个?任何帮助表示赞赏.谢谢.
我有以下linq代码...
CMSDataContext dc = new CMSDataContext();
var q = from u in dc.CMSUsers
join d in dc.tblDistricts
on u.DistrictCode equals d.District into orders
select u;
Run Code Online (Sandbox Code Playgroud)
区显示此错误:'tblDistrict.District'和'tblDistrict.District'之间存在歧义
有任何想法吗?
编辑:
事实证明,我在两个不同的dbml文件中有相同的表.显然,我不能这样做.我将不得不最终从一个dbml文件加入一个表与另一个dbml文件中的另一个表.如果有人能告诉我如何做到这一点,我会认为这是一个答案.谢谢.