2017-03-12 7 views
-1

EFコアがサポートされていないGroupByと私はDistinctと同じ問題があると思います。EntityFrameworkコアでGroupByとDistinctが異なる

どうすれば修正できますか?

私はちょうど100個の最初の要素を取得し、その後、私は結果リストにDistinct()を呼び出す

は、よりよい解決策がありますか?

EFCoreに拡張メソッドとしてgroupbyを追加することは可能ですか?

ネットコアは、報告システムのための良いアイデアではありません:/

それは罠である:(

 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そこにプルリクエストがあるようです。 1つは更新された3 days ago –

+0

tnx、しかし私は速い解決を探します – data

答えて

1

あなたはEFコア

でサポートされていないクエリに対して Dapperライブラリを使用することができます

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、私はGroupByをサポートするためにEFコアを拡張できますか?どのようにこれを行うことができますか?デコレータパターン?この問題を処理するために.Net CoreでEF6を使用できますか? – data

関連する問題