Ben lambda LINQGroupBy ile lambda LINQ için SQL Çevir ve
SELECT ID, AVG(Score) FROM myTable
GROUP BY ID
herhangi bir fikir basit SQL çevirmek için çalışan bir kaç saat geçirmek Ortalama?
Ben lambda LINQGroupBy ile lambda LINQ için SQL Çevir ve
SELECT ID, AVG(Score) FROM myTable
GROUP BY ID
herhangi bir fikir basit SQL çevirmek için çalışan bir kaç saat geçirmek Ortalama?
from t in myTable
group t by new {
t.ID
} into g
select new {
Average = g.Average(p => p.Score),
g.Key.ID
}
veya Lambda de ne dilde
myTable.GroupBy(t => new {ID = t.ID})
.Select (g => new {
Average = g.Average (p => p.Score),
ID = g.Key.ID
})
var _result = from a in myTable
group a by a.ID into g
select new
{
ID = g.Key.ID,
AverageResult = g.Average(x => x.Score)
}
"g.Key.ID" nin mevcut olmayacağını ve derlenmeyeceğini unutmayın. Bu kod parçasında yalnızca "g.Key" gerekiyor. –
@AnthonyPegram neden derlenmeyecek? Sadece test ettim. –
Bu sürüm nedir? "Int" ifadesinin 'ID' için bir tanım içermediğini ve 'ID' kabul edilmeyen bir uzantı yöntemi ... '' (“gerçek” türünün ID için değiştirilmesinden sonra 'int' ifadesini kullanan bir hata iletisi almanız gerekir.) Buradaki nokta, g.Key'nin * kimliği olmasıdır. Kimlik özelliği içeren bir nesne değildir. –
Linq'den Nesnelere eşdeğer aşağıdaki gibi bir şey olabilir.
var results = from row in myTable
group row by row.Id into rows
select new
{
Id = rows.Key,
AverageScore = rows.Average(row => row.Score)
};
Yalnızca ORM benzeri bir varlık çerçevesi için biraz farklıdır. Yani, veri bağlamı veya uygun bir DbSet/ObjectSet üzerinden gitmeniz gerekir.
? :) – spajce