1

有人看到 linq 从查询中删除行的位置吗?

如果我查询数据库

从 staging_flowrates 中选择 *,其中 flowdate 在 '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 年了,我从来没有注意到这一点。

有任何想法吗?

马特

4

1 回答 1

0

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

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

于 2012-04-24T19:35:14.380 回答