gpt4 book ai didi

c# - LINQ to Entities 无法识别方法 'System.Collections.Generic.Dictionary`

转载 作者:太空宇宙 更新时间:2023-11-03 23:32:23 25 4
gpt4 key购买 nike

我有这个erun time错误异常

LINQ to Entities does not recognize the method
'System.Collections.Generic.Dictionary`2[System.String,System.Collections.Generic.List`1[Project.Model.Value]]
ToDictionary[Value,String,List`1](System.Collections.Generic.IEnumerable`1[Project.Model.Value],
System.Func`2[Project.Model.Value,System.String],
System.Func`2[Project.Model.Value,System.Collections.Generic.List`1[Project.Model.Value]])'
method, and this method cannot be translated into a store expression.

我尽我所能修复它,但没有用。我认为来自列表的异常有人可以帮助我修复它

public IEnumerable<ItemManagement> getItemsForFormType(string formType)
{
using (var db = new AthenaContext())
{

List<Value> dropDownListValue = (from val in db.Values
where val.ParentId == (from va in db.Values
where
va.ParentId
== (from value3 in db.Values
where value3.Name == formType
select value3.RecordId).FirstOrDefault()
select va.RecordId).FirstOrDefault()
select val).ToList();
var result = (from value1 in db.Values
where value1.Name == formType
select
new ItemManagement
{

FormType = value1.Name,
RecordID = value1.RecordId,
FormControllerNames =
(from va in db.Values
where va.ParentId == (from value3 in db.Values where value3.Name == formType select value3.RecordId).FirstOrDefault()
select va).ToDictionary(va => va.Name, va => dropDownListValue)
}).ToList();
return result;
}

最佳答案

您正在尝试将 .NET 库函数嵌入到您的 EF 查询中。由于它不可转换为 SQL,因此不受支持。

您必须重写您的查询,而不使用 .ToDictionary()。

这个特殊情况可能并不难。如果完全需要投影 ToDictionary(),请重新访问。您可以使用以下方法安全地编写 SQL 可翻译投影:

.Select( new { anyName: <expression>, otherName: <otherExpression>, etc })

关于c# - LINQ to Entities 无法识别方法 'System.Collections.Generic.Dictionary`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31702215/

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