当转换为linq时,这个sql查询(w count和group by)是什么样子的?
以下sql查询在转换为linq时会是什么样子当转换为linq时,这个sql查询(w count和group by)是什么样子的?,linq,linq-to-objects,llblgenpro,Linq,Linq To Objects,Llblgenpro,以下sql查询在转换为linq时会是什么样子 SELECT myId, Count(myId) FROM MyTable GROUP BY myId 我尝试了以下方法: var q = from a in db.MyTable group a by a.Id into g let count = g.Count() select new { Count = Id, Key= g.Key }; 但它在枚举上引发了一个异常,表明没有名为“Key”的映射的db函数。我在这个特定
SELECT
myId, Count(myId)
FROM MyTable
GROUP BY myId
我尝试了以下方法:
var q = from a in db.MyTable
group a by a.Id into g
let count = g.Count()
select new
{
Count = Id,
Key= g.Key
};
但它在枚举上引发了一个异常,表明没有名为“Key”的映射的db函数。我在这个特定的应用程序上使用LLBLGen,我怀疑这就是问题的根源所在。在开始挖掘之前,我想验证我的linq语法是否正确。有人看到什么不对劲吗?试试这个:
var q = from a in db.MyTable
group a by a.Id into g
select new { Id=g.Key, Count=g.Count() };
这和你的差不多,但是你的计数是以不同的方式获得的,这在我看来是错误的
但是,如果LLBLGen不理解IGrouping.Key,这可能会很棘手
为了检查LINQ语法是否正确,我建议构建一个非常简单的内存中列表,用作表。下面是一个例子:
using System;
using System.Collections.Generic;
using System.Linq;
class Test
{
static void Main()
{
var data = new[] {
new { Id="X", Name="Jon" },
new { Id="Y", Name="Marc" },
new { Id="X", Name="Holly" },
};
var query = from a in data
group a by a.Id into g
select new { Id=g.Key, Count=g.Count() };
foreach (var entry in query)
{
Console.WriteLine(entry);
}
}
}
这似乎给了我正确的结果。试试这个:
var q = from a in db.MyTable
group a by a.Id into g
select new { Id=g.Key, Count=g.Count() };
这和你的差不多,但是你的计数是以不同的方式获得的,这在我看来是错误的
但是,如果LLBLGen不理解IGrouping.Key,这可能会很棘手
为了检查LINQ语法是否正确,我建议构建一个非常简单的内存中列表,用作表。下面是一个例子:
using System;
using System.Collections.Generic;
using System.Linq;
class Test
{
static void Main()
{
var data = new[] {
new { Id="X", Name="Jon" },
new { Id="Y", Name="Marc" },
new { Id="X", Name="Holly" },
};
var query = from a in data
group a by a.Id into g
select new { Id=g.Key, Count=g.Count() };
foreach (var entry in query)
{
Console.WriteLine(entry);
}
}
}
这看起来给了我正确的结果。哈哈,我的方式确实很奇怪。这很有魅力。谢谢你,哈哈,我的方式真的很奇怪。这很有魅力。谢谢你,乔恩