如何在Linq中编写SQL IsNull()



可能重复:
LINQ中SQL ISNULL的等价物?

我最近从ADO.Net迁移到Entity Framework

我在Linq 中执行此查询时遇到问题

select IsNull(MAX(InvoiceNo),0) from Sales

我在LINQ中写了这个查询,除了isNull()

        var q = (from p in dbContext.Sales
                 select p.InvoiceNo).Max();

但我不知道如何在这个Linq 中使用IsNull()

当我执行这个Linq查询时,我得到了这个异常。

'对类型的构造函数的调用与指定匹配的"JIMS.ViewModel.Transaction.SalesViewModel"绑定约束引发异常行号"8"和行位置"6"。

我正在使用WPF MVVM FrameWork和实体FrameWork作为DAL

var InvoiceNo = dbContext.Sales.Max(x => (int?)x.InvoiceNo) ?? 0;

试试这个:

var q = (from p in dbContext.Sales
                 select (int?)p.InvoiceNo).Max();

如果invoicno为null,则必须选择zero。你可以这样做的一种方法是:

var elements = (from p in dbContext.Sales
                 where p.InvoiceNo != null
                 select p.InvoiceNo).Max();

假设总是至少有一个发票,如果没有,你可以做

var elements = (from p in dbContext.Sales
                 select p.InvoiceNo ?? 0).Max();

它必须比较所有元素,这样它可能比第一种方法

最新更新