gpt4 book ai didi

.net - LINQ to Entities 无法识别方法

转载 作者:行者123 更新时间:2023-12-01 05:10:44 31 4
gpt4 key购买 nike

我有一个很长的 Linq To Entities 查询:-

reports = db.CallProfileDailies
.Join(db.ReportDailyTotals,
cpd => cpd.Date,
rdt => rdt.Date,
(cpd, rdt) => new { cpd = cpd, rdt = rdt })
.Where(a => a.cpd.Skill == a.rdt.Skill)
.Join(db.SummaryIntervalTotals,
a => a.rdt.Date,
sit => sit.Date,
(a, sit) => new { cpd = a.cpd, rdt = a.rdt, sit = sit })
.Where(a => a.rdt.Skill == a.sit.Skill)
.Select((a, i) => new ReportModel
{
AverageAbandonDelay = a.sit.AvgAbanTime,
AverageAfterCallWorkTime = a.sit.AvgAcwTime,
AverageHandleTime = (a.sit.AvgAcwTime + a.sit.AvgAcdTime),
AverageSpeedOfAnswer = a.sit.AvgSpeedAns,
AverageTalkTime = a.sit.AvgAcdTime,
CallsAnswered = a.sit.AcdCalls,
Date = a.sit.Date.ToString(),
MaximumDelay = a.sit.MaxDelay,
PercentageAbandon = (a.sit.AbanCalls / (a.sit.AcdCalls + a.sit.AbanCalls)),
TotalCallsAbandon = a.sit.AbanCalls,
TotalCallsOffered = (a.sit.AcdCalls + a.sit.AbanCalls),
TotalHandleTime = (a.rdt.HoldTime + a.rdt.AcdTime + a.rdt.AcwTime)
}).Take(5).ToList();

我在运行时收到以下错误:-

LINQ to Entities does not recognize the method 'System.Linq.IQueryable`1[ExpediaReports.Models.ReportModel] Select[<>f_AnonymousType1`3,ReportModel](System.Linq.IQueryable`1[<>f_AnonymousType1`3[ExpediaReports.CallProfileDaily,ExpediaReports.ReportDailyTotal,ExpediaReports.SummaryIntervalTotal]], System.Linq.Expressions.Expression`1[System.Func`3[<>f__AnonymousType1`3[ExpediaReports.CallProfileDaily,ExpediaReports.ReportDailyTotal,ExpediaReports.SummaryIntervalTotal],System.Int32,ExpediaReports.Models.ReportModel]])' method, and this method cannot be translated into a store expression.



我只是想了解这个错误是什么意思。我什至无法读取它(Linq To Entities)无法识别的方法。

如何阅读此错误并识别无法识别的方法,以便我可以相应地更改我的查询?

这些字符在这里是什么意思:` <> ' 等。

最佳答案

“此方法无法转换为存储表达式”意味着 Linq to Entities 无法将您的查询转换为 SQL。

当您的 .Select() 函数中的某些内容试图以无法直接转换为 SQL 的方式操作结果时,通常会发生这种情况,例如当您运行一个函数时。我敢打赌,“a.sit.Date.ToString()”行是造成问题的原因。只需在调用 .ToList() 后返回日期并格式化它,我敢打赌问题会消失。

这可能令人沮丧——Linq to SQL 在运行这样的查询方面要好得多,其中 .Select() 函数中有复杂的函数。请记住,Linq to Entities 在转换为 SQL 的功能方面非常有限。

关于.net - LINQ to Entities 无法识别方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5484675/

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