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

时间:2012-04-24 18:47:18

标签: linq linq-to-sql

有没有人看到linq从查询中删除行?

如果我查询数据库

从staging_flowrates中选择*,其中'4/16/2012'和'4-22-2012'之间的流程

我找回了29条记录,这是我所期望的。

如果我在linq中调用此过程,则会获得25条记录。我已经做了很多不同的方式,他们都返回了低于29的结果

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

var meters = from c in flowRateDB.staging_flowrates
             where c.FlowDate >= date.AddDays(-8) && c.FlowDate <= date.AddDays(-2)
             select c;

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

任何想法?

马特

1 个答案:

答案 0 :(得分:0)

我建议您启动SQL Server Profiler并捕获执行的确切SQL。拿这个SQL并在SSMS中自己执行它。我的猜测是,执行的查询在某种程度上是错误的,你将能够看到原因。

有一件事是肯定的:LINQ不会丢弃行。原因是SQL已执行。