我最近从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和Entity FrameWork作为DAL
答案 0 :(得分:9)
var InvoiceNo = dbContext.Sales.Max(x => (int?)x.InvoiceNo) ?? 0;
答案 1 :(得分:3)
试试这个:
var q = (from p in dbContext.Sales
select (int?)p.InvoiceNo).Max();
答案 2 :(得分:0)
如果invoicno为null,则必须选择零。你可以这样做的一种方法是:
var elements = (from p in dbContext.Sales
where p.InvoiceNo != null
select p.InvoiceNo).Max();
假设至少有一个invoiceno,如果没有,你可以做
var elements = (from p in dbContext.Sales
select p.InvoiceNo ?? 0).Max();
必须比较所有元素,以便 比第一种方法慢