あるテーブルの各カラムの最大値を1つのクエリで取り出したいです。
SQLで書けば、下記のようになると思います。

select max(column1),max(column2),max(column3) from table1;

これをLINQを使って下記のように実現しましたが、例1では複数のクエリが発行されてしまいますし、例2では「GroupBy句でIDに0を掛けて1つのグループにする」ことで疑似的に実現しているため、うまくないように思えます。
LINQで無理やりではない(より良い)実現方法を教えていただけるでしょうか?

例1.

var column1 = db.table1.Max(a => a.column1);
var column2 = db.table1.Max(a => a.column2);
var column3 = db.table1.Max(a => a.column3);

例2.

db.table1.GroupBy(a => a.Id * 0).Select(a => new {
  column1 = a.Max(b => b.column1),
  column2 = a.Max(b => b.column2),
  column3 = a.Max(b => b.column3),
}).FirstOrDefault();

フレームワーク:.Net Framework 4.6.1、Entity Framework 6.0