有没有人看到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年了,我没有注意到这一点。
任何想法?
马特
答案 0 :(得分:0)
我建议您启动SQL Server Profiler并捕获执行的确切SQL。拿这个SQL并在SSMS中自己执行它。我的猜测是,执行的查询在某种程度上是错误的,你将能够看到原因。
有一件事是肯定的:LINQ不会丢弃行。原因是SQL已执行。