c# 执行linq语句查询时出现 Oracle 11.2.0.4.0 不支持 APPLY

 var qurry = from bind in repDb.DbQuery.Where(p => p.PrescriptionInfo.DecocteScheme.DecocteSchemeDetails.Select(q => q.DecocteType).Contains(DecoctMethod.BackDown) 
                                                   && p.PrescriptionInfo.PreDetails.Select(q => q.Method).Contains(PDecoctMethod.Last)
                                                   &&  p.DispenseTask.IsPutedLastDrug==null )
                        join boil in repBB.DbQuery.Where(p=>p.IsLastDrugPosi==null)
                        on bind.BucketId equals boil.BucketId
                        select new
                        {  
                            LastDrugsWeight = (from dsd in disSub.DbQuery.Where(c => c.PrescriptionId == bind.PrescriptionInfo.Id)
                                               join preDetail in bind.PrescriptionInfo.PreDetails.Where(p => p.Method == PDecoctMethod.Last)
                                               on dsd.DrugId equals preDetail.DrugId
                                               orderby dsd.DrugId ascending
                                               select new
                                               {
                                                   PrescriptionWeight = dsd.PrescriptionWeight,
                                                   LastDrugs = dsd.Drug.Name
                                               }).ToList(), 
                            TotalTime = bind.PrescriptionInfo.DecocteScheme.DecocteSchemeDetails.FirstOrDefault(p => p.DecocteType == DecoctMethod.FryOne).Time, 
                        };
            var a= qurry.ToList();

执行上面语句时出现 “Oracle 11.2.0.4.0 不支持 APPLY”错误

下面是修改后的语句就可以成功查询,个人猜测可能是linq与EF混用导致的,至于具体原因还请各位大神指教一二,谢谢

 var qurry = from bind in repDb.DbQuery.Where(p => p.PrescriptionInfo.DecocteScheme.DecocteSchemeDetails.Select(q => q.DecocteType).Contains(DecoctMethod.BackDown) 
                                                   && p.PrescriptionInfo.PreDetails.Select(q => q.Method).Contains(PDecoctMethod.Last)
                                                   &&  p.DispenseTask.IsPutedLastDrug==null )
                        join boil in repBB.DbQuery.Where(p=>p.IsLastDrugPosi==null)
                        on bind.BucketId equals boil.BucketId
                        select new
                        {  
                             LastDrugsWeight = (from dsd in disSub.DbQuery 
                                               join preDetail in bind.PrescriptionInfo.PreDetails 
                                               on dsd.DrugId equals preDetail.DrugId
                                               orderby dsd.DrugId ascending
                                               where dsd.PrescriptionId== bind.PrescriptionInfo.Id && preDetail.Method== PDecoctMethod.Last
                                               select new
                                               {
                                                   PrescriptionWeight = dsd.PrescriptionWeight,
                                                   LastDrugs = dsd.Drug.Name
                                               }).ToList(),
                            TotalTime =from desc in bind.PrescriptionInfo.DecocteScheme.DecocteSchemeDetails where desc.DecocteType == DecoctMethod.FryOne select desc.Time,
                        };
            var a= qurry.ToList();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值