2017-03-12 118 views
-1

EF核心鲜明的剂量不支持GroupBy,我想为Distinct我有同样的问题。的GroupBy和核心的EntityFramework

那么,我该如何解决它?

我只是得到100个第一要素,然后我打电话Distinct()在结果列表

有一个更好的解决办法?

是有可能GROUPBY添加为扩展方法来EFCore?

对.NET核心不是报告制度是个好主意:/

是陷阱:(

 query = query.Where(e => e.Goodscode.Contains(filter) || e.GoodsName.Contains(filter)); 
     return query.Select(e => new GoodsDTO 
     { 
      Name = e.GoodsName, 
      Code = e.Goodscode, 
      T3Code = e.T3Code, 
      StockId = e.StockId 
     }).Take(100).ToList().Distinct(new GoodsDTOComparer()).Take(20); 
     //why we do like up: because EF7 dosent support Distinct and GroupBy yet (12-03-2017) 
     //microsoft, please don't be OpenSource, because you dont care for your opensource products 
+0

这是GitHub问题链接https://github.com/aspnet/EntityFr amework/issues/2341看起来这里有一些拉取请求。其中一个已于3天前更新 –

+0

tnx,但我寻找快速解决方案 – data

回答

1

可以使用Dapper库,在EF核心

不支持查询

示例

using (IDbConnection dbConnection = new SqlConnection(niniSiteConnectionString)) 
{ 

    var sql = @"SELECT Name, Count(*) AS Total FROM Users 
        GROUP BY u.Name 
        HAVING COUNT(*) > 1"; 

    var result = dbConnection.Query<UserDto>(sql).ToList(); 
} 

public class UserDto 
{ 
    public string Name{get; set;} 
    public int Total{get; set;} 
} 
+0

tnx mohammad,我可以扩展EF核心以支持GroupBy吗?怎么做到这一点?装饰者模式?我可以使用.Net Core的EF6来处理这个问题吗? – data

相关问题