【发布时间】:2011-10-18 08:43:26
【问题描述】:
我正在尝试将 SQL 查询转换为 Linq
查询是:
SELECT Distinct(InvoiceID)
FROM Invoices
WHERE ((DATEDIFF(day, InvoiceDate, GETDATE()) > PaymentDays) AND
status= 'false')
我写了以下代码,但没有得到正确的结果......
var outstanding = db.Invoices.Where(t =>
(t.InvoiceDate.Value.Subtract(DateTime.Today)).Days > t.PaymentDays.Value
&& !(bool)t.Status)
在我看来,DATEDIFF 在 LINQ to SQL 中没有适当的等效项
【问题讨论】:
-
工作量很大,您至少应该先尝试一下 - 在这里查看示例msdn.microsoft.com/en-us/vcsharp/aa336746
-
您是否尝试过有助于创建 SQL 和 Linq 查询的 LinqPad?
-
您对哪个部分特别有问题?向我们展示代码,描述您自己可以走多远(提示:以
var result = from b in db.Buyer开头),并告诉我们您在哪里感到困惑,以及您尝试过哪些没有奏效的方法。 -
如果您遇到困难,可以使用sqltolinq.com 等工具。但是,花时间解决您的问题并一路学习是非常值得的。
-
@christofr:我认为 SQLTOLINQ 不能正确翻译 DATEDIFF
标签: c# .net sql-server linq-to-sql