0

この SQL クエリを LINQ に変換する必要があります。

SELECT COUNT(result1.Id) AS total, 
    result1.OccurrenceDate, 
    result1.Path, 
    result1.Message, 
    result1.StackTrace 
FROM (SELECT * FROM tbllog ORDER BY OccurrenceDate DESC) AS result1
GROUP BY result1.Path, result1.Message ORDER BY total DESC

しかし、私は成功していません。私は非常に多くの方法で試しましたが、何も機能しません。手助け?

4

3 に答える 3

0

質問のコンテキストが何であるかはわかりませんが、追加のパラメーターで実行されるようにクエリを変更する必要がない場合は、SQLとしてクエリを実行することを強くお勧めします。これは、私が知っているすべてのORM(Entity Framework、NHiberate、LINQ to SQLなど)でサポートされています。

エリック

于 2012-07-02T19:57:07.773 に答える
0
var results = _dbContext.tbllog
    .GroupBy( t => new { t.Path, t.Message })
    .Select( g => new 
        {
            Total = g.Count(),
            Path = g.Key.Path,
            Message = g.Key.Message
        }).OrderBy(p => p.Total);

プロパティが句にも集計関数にも含まれOccurrenceDateていないため、SQLクエリは無効であるため、無効なクエリであることに注意してください。LINQクエリでも同じです。あなたは彼らと何をしたいのかを決める必要があります。それらをgroupbyに含めるか、集計関数を使用して各グループに適切な値を選択します。StackTraceGROUP BY

于 2012-07-02T19:24:16.970 に答える