gpt4 book ai didi

c# - DbExpressionBinding 需要带有集合 ResultType 的输入表达式。参数名称: input

转载 作者:行者123 更新时间:2023-12-02 02:11:58 24 4
gpt4 key购买 nike

我的 linq 查询有一个大问题

            var t = from tl in _GxEntities.T_L
join td in _GxEntities.T_D on (int)tl.fld_rdRequestfk equals td.fld_rqID_pk
join tpd in _GxEntities.T_P_D on (int)td.fld_rqID_pk equals tpd.fld_pdRequest_fk
where tpd.fld_pdda == null
&& tpd.fld_pdSU_fk == tl.fld_rdSU_fk
&& td.fld_rqstatus != 1
&& tl.fld_rcid != null
&& tl.loc_id == UsrProfilService.loc_id
&& tl.fld_rcid.Any(x=> tblRvGxFr.Select(c=>c.Nte).Contains(x.ToString()))
group tl by new
{
tl.fld_rcid,
tl.fld_rdSU_fk,
tl.fld_rdtRequested_Q,
tl.loc_id
} into q
select new RVSyntheseDetailModel()
{
RC_ID = q.Key.fld_rcid,
SU = (int)q.Key.fld_rdSU_fk,
Ts = (int)q.Sum(k => k.fld_rdtRequested_Q),
LOC_ID = (short)q.Key.loc_id
};

return t.ToList();

如果我评论 && tl.fld_rcid.Any(x=> tblRvGxFr.Select(c=>c.Nte).Contains(x.ToString())) 这部分我不有什么问题。 tblRvGxFr 来自另一个实体,如下所示:

var dateLimit = DateTime.Now.Date.AddMonths(-1);

var tblRtvGrxFr = from tgx in _FtEntities.TL_RV_FR_GX
where tgx.RV_D_LIM_RET > dateLimit && tgx.RV_N_IDT_DAP != null && tgx.RV_LOC_ID == SqlFunctions.StringConvert((double)UsrProfilService.loc_id)
select new RVSyntheseRrModel()
{
Nte = tgx.RV_ETET,
Tr = tgx.RV_TR,
Filiere = tgx.RV_T_PRD,
Lib_art = tgx.RV_L_ART,
SU = tgx.RV_N_IDT_DAP,
Qte_demand = (int?)tgx.RT_Q_DEM_RET ?? 0,
Ord = 0,
Tcs = 0,
AfA = 0,
PrA = 0,
Exped = 0,
Loc_Id = tgx.RV_LOC_ID,
Reason = tgx.RV_REASON
};

你能帮我吗?为什么我会收到此错误“DbExpressionBinding 需要带有集合 ResultType 的输入表达式。参数名称:输入”?

如果我将此条件更改为: && tblRvGxFr.Select(i => i.Nte).Contains(tl.fld_rcid) 我会出现此错误:无法处理类型 'GX.ViewModels.RVSyntheseRrModel[]' ,因为它没有已知的到值层的映射。

最佳答案

通常你会使用这样的东西

&& tblRvGxFr.Any(c => c.Nte.Contains(tl.fld_rcid))

但是 LINQ to Entities 不支持涉及不同 DbContext 的查询。因此,您需要将 Nte 放入本地列表/数组

var nteList = tblRvGxFr.Select(c => c.Nte).ToList();

然后使用它:

&& nteList.Any(nte => nte.Contains(tl.fld_rcid))

希望Nte列表不要太大,否则SQL查询会很大而且效率低下。但据我所知,不存在其他多上下文解决方案。

关于c# - DbExpressionBinding 需要带有集合 ResultType 的输入表达式。参数名称: input,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38453506/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com