首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >LINQ - LINQ的不同结果

LINQ - LINQ的不同结果
EN

Stack Overflow用户
提问于 2011-05-03 17:04:35
回答 1查看 1K关注 0票数 2

我正在使用LINQPad和LINQPad执行“相同”查询,但是结果集的结果略有不同。

代码是

代码语言:javascript
复制
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“,而使用LINQPad,我为每条记录得到1s。

使用LINQPad,我使用SQL为DBLinq生成映射,使用LINQPad使用IQ驱动程序。我的数据库是SQLite。

我对LINQ很陌生,有什么想法我错了吗?

编辑

我已经将我的查询简化为简约的可再现实例。在调试生成的SQL时,将获得

代码语言:javascript
复制
SELECT (SELECT COUNT(*))
FROM runrecords
GROUP BY RunID

这是第二个“计数(*)”正在丢失的东西。

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-05-04 01:16:44

听起来您使用的是DBLinq,而不是LINQ。SQL金属工具生成实体类和类型化的DataContext -但是如果您使用DBLinq,那么实际上将LINQ转换为SQL的是DBLinq。

当我上次看DBLinq (一年或两年前)时,它相当原始,甚至在一些基本的查询上也不起作用。LINQPad的IQ驱动程序使用马特·沃伦的IQueryable工具包,它可能是用于将LINQ转换为SQL的最复杂的提供者无关引擎。另一个很好的引擎是DevArt的LINQ库--这在最近的时间里已经取得了很大的进展,并且还支持SQLite。

现在,我正在更新IQ驱动程序以支持甲骨文,并计划发布对IQueryable库本身的一些增强。你为什么不尝试使用这个或DevArt的库。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5873048

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档