System.NotSupportedException当前不支持方法'System.Linq.Queryable.GroupBy'的重载。

时间:2017-06-29 12:08:28

标签: c# .net entity-framework linq asp.net-core

public partial class GoodsCode_EAN
{
    public string GoodsCode { get; set; }
    public string EAN { get; set; }
}

这是ShopCode每次都是唯一的模型,但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:   '无法解析表达式   值(Microsoft.EntityFrameworkCore.Query.Internal.EntityQueryable`1 [ProfiKasa.Portal.Models.newModel.CisloZbozi_EAN])。FromSql(“选择   * FROM dbo.fnCisloZbozi_EAN(1)“,__ p_0)。GroupBy(p => p.EAN,__ p_1)':方法'System.Linq.Queryable.GroupBy'的重载是   目前不支持。'

当我删除ToDictionary时,一切正常...... 有任何想法吗? 谢谢!

1 个答案:

答案 0 :(得分:1)

实体框架并不会以<Style TargetType="DataGrid" BasedOn="{StaticResource {x:Type DataGrid}}" /> 枚举开头。实际上,它并不支持StringComparer的整个重载,它带有第二个参数(GroupBy)。

您可以使用IEqualityComparer<T>作为替代方案,因为它受支持且可以转换为SQL:

ToLower()