【发布时间】:2011-11-29 02:11:11
【问题描述】:
如何将我的 LINQ 转换为 SQL?
我有这个 LINQ 语句:
int LimCol = Convert.ToInt32(LimitColis);
result = oListTUP
.GroupBy(x => new { x.Item1, x.Item2, x.Item3, x.Item4, x.Item5 })
.Select(g => new
{
Key = g.Key,
Sum = g.Sum(x => x.Item6),
Poids = g.Sum(x => x.Item7),
})
.Select(p => new
{
Key = p.Key,
Items = Enumerable.Repeat(LimCol, p.Sum / LimCol).Concat(Enumerable.Repeat(p.Sum % LimCol, p.Sum % LimCol > 0 ? 1 : 0)),
CalculPoids = p.Poids / Enumerable.Repeat(LimCol, p.Sum / LimCol).Concat(Enumerable.Repeat(p.Sum % LimCol, p.Sum % LimCol > 0 ? 1 : 0)).Count()
})
.SelectMany(p => p.Items.Select(i => Tuple.Create(p.Key.Item1, p.Key.Item2, p.Key.Item3, p.Key.Item4, p.Key.Item5, i, p.CalculPoids)))
.ToList();
}
效果很好,但是不知怎么想推它变得太复杂了,所以我想把它转换成Pure SQL。
我尝试过 SQL Profiler 和 LinqPad,但都没有显示 SQL。
如何从 My LINQ 中查看 SQL 代码?
提前谢谢你。
【问题讨论】:
-
SQL Profiler 没有显示针对 SQL 服务器执行的命令?这听起来不对。它显示了什么?
-
LinqPad 肯定是shows the SQL generated
-
你一直说“我的 LINQ”——这是 MySQL 还是 SQL Server?