【发布时间】:2011-05-03 17:04:35
【问题描述】:
我正在使用 LINQ to SQL 和 LINQPad 执行“相同”查询,但是结果集的结果略有不同。
代码是
var conn = new SqliteConnection (
"DbLinqProvider=Sqlite;" +
"Data Source=/home/larsenma/database.golden"
);
Models.Main db = new Models.Main (conn);
var runSum =
from rr in db.Runrecords
group rr by rr.RunID into rg
select new
{
LaneCount = rg.Count(),
}
LINQPad 正确计算“LaneCount”,而使用 LINQ to SQL 我为每条记录得到 1。
在 LINQ to SQL 中,我使用 sqlmetal 为 DBLinq 生成映射,并在 LINQPad 中使用 IQ 驱动程序。我的数据库是 SQLite。
我对这个 LINQ 东西比较陌生,有什么想法我哪里出错了吗?
编辑
我已将查询简化为最简单的可重现实例。当我调试生成的 SQL 时,我得到了
SELECT (SELECT COUNT(*))
FROM runrecords
GROUP BY RunID
这是第二个“COUNT(*)”丢失的东西。
谢谢。
【问题讨论】:
标签: linq linq-to-sql linqpad