【发布时间】:2017-06-29 12:08:28
【问题描述】:
public partial class GoodsCode_EAN
{
public string GoodsCode { get; set; }
public string EAN { get; set; }
}
这是 GoodsCode 每次都是唯一但 EAN 不是的模型
var test = _context.GoodsCode_EAN
.FromSql($"SELECT * FROM dbo.fnGoodsCode_EAN({SavedData.Entities.id_cenoprov})")
.GroupBy(p => p.EAN, StringComparer.OrdinalIgnoreCase)
.ToDictionary(g => g.Key, g => g.ToList(), StringComparer.OrdinalIgnoreCase);
所以我只是尝试将具有相同 EAN 的每个元素分组到字典并得到这个异常......
System.NotSupportedException: '无法解析表达式 value(Microsoft.EntityFrameworkCore.Query.Internal.EntityQueryable`1[ProfiKasa.Portal.Models.newModel.CisloZbozi_EAN]).FromSql("SELECT * FROM dbo.fnCisloZbozi_EAN(1)", __p_0).GroupBy(p => p.EAN, __p_1)':方法 'System.Linq.Queryable.GroupBy' 的重载是 目前不支持。'
当我删除 ToDictionary 时,一切正常...
有任何想法吗?
谢谢!
【问题讨论】:
-
在 .ToDictionary() 之前添加 .ToArray() 并再次测试
-
又出现同样的错误...
-
EF 理解
StringComparer.OrdinalIgnoreCase吗?我认为p.EAN.ToLower()可能会有所帮助。 -
是因为 GroupBy 中的 StringComparer.OrdinalIgnoreCase。见stackoverflow.com/questions/1047891/…
标签: c# .net entity-framework linq asp.net-core