統計情報(ID int、col1 int、col2 int、col3 int ...) col1値、col2値、col3の合計を取得したい値など 単純なSQLクエリ:LINQクエリの複数の列の合計
SELECT SUM([Col1]), SUM([Col2])
FROM [dbo].[Statistics]
が、LINQで:
var val1 = db.Statistics.Sum(x => x.Col1);
var val2 = db.Statistics.Sum(x => x.Col2);
var val3 = db.Statistics.Sum(x => x.Col3);
...
このようには動作しますが、これはデータベース上でN個のクエリを実行します。私は1つしか実行しません。私が見つけた唯一の方法はこれです:
var result = db.Statistics.GroupBy(x => 1).Select(x => new
{
val1 = x.Sum(k => k.Col1),
val2 = x.Sum(k => k.Col2),
val3 = x.Sum(k => k.Col3),
});
複雑なクエリを生成すること。 それは正常ですか?
UPDATE これらは2つの実行計画です:
パフォーマンスが十分であるかどうかはわかりません。あなたは私たちに言います。 **それを測定する**。それがあなたのために十分に機能するなら、それはあなたのために十分に機能します。そうでなければ、そうではないことが分かります。 – Servy
可能[重複](http://stackoverflow.com/questions/2432281/get-sum-of-two-columns-in-one-linq-query) –