Linq从存储过程和内联查询中删除行

Linq从存储过程和内联查询中删除行,linq,linq-to-sql,Linq,Linq To Sql,有人见过linq从查询中删除行的地方吗 如果我查询数据库 从流量日期介于“2012年4月16日”和“2012年4月22日”之间的分段流量中选择* 我得到了29张唱片,这是我所期望的 如果我在linq中调用这个过程,我会得到25条记录。我用了很多不同的方法,结果都不到29 List<weekly_invoice_dataResult> meterdata = flowRateDB.weekly_invoice_data(173, date.AddDays(-8), date.Ad

有人见过linq从查询中删除行的地方吗

如果我查询数据库

从流量日期介于“2012年4月16日”和“2012年4月22日”之间的分段流量中选择*

我得到了29张唱片,这是我所期望的

如果我在linq中调用这个过程,我会得到25条记录。我用了很多不同的方法,结果都不到29

List<weekly_invoice_dataResult> meterdata = flowRateDB.weekly_invoice_data(173,    date.AddDays(-8), date.AddDays(-2)).ToList();}

所有这些都返回25行,但如果我返回ADO并进行计数,则得到29行。我已经使用linq大约6年了,我从来没有注意到这一点

有什么想法吗


Matt

我建议您启动SQL Server Profiler并捕获执行的确切SQL。获取此SQL并在SSMS中自己执行。我的猜测是,执行的查询在某种程度上是错误的,您将能够看到这是为什么


有一点是肯定的:LINQ不会删除行。原因是执行了SQL。

如何获取日期?它可能有时间成分=0? 也许可以尝试使用新的Date2012,4,24而不是DateDate来进行查询,我认为@HugoRune在这里得到了一些东西。差异也可能由L2S知道为主键的字段数据库中的非唯一键值引起。
var meters = from c in flowRateDB.staging_flowrates
             where c.FlowDate >= date.AddDays(-8) && c.FlowDate <= date.AddDays(-2)
             select c;