LINQ verbinden einen Fehler geben, während des unter Verwendung von linqlinq Entitäten dezimal Null-Werte von den äußeren
var data = (from p in _context.Products
from invp in _context.Inventories
.Where(inv=>inv.Product.ID== p.ID)
.DefaultIfEmpty()//left outer join
select new { p.ID, p.Name, p.BarCode, p.ProductCategory, p.MRP, p.RetailPrice,stock=invp.Stock }).ToList() ;
Die gegossenen zu Werttyp System.Decimal
fehlgeschlagen, weil der materialisierten Wert null ist. Entweder der generische Parameter des Ergebnistyps oder die Abfrage müssen einen Nullwerttyp verwenden.
Wenn ich invp.stock von der Auswahl entfernen, funktioniert es, wie kann ich invp.stock auf 0 setzen, wenn es null ist.
Danke..aber es gibt Compiler Fehler Op Erator '??' Kann nicht auf Operanden vom Typ 'dezimal' und 'int' angewendet werden. – user3658516
Oh, tut mir leid, dass dies in der aktuellen MVC 4 nicht akzeptiert werden kann. –
Ich dachte 'Fall wenn' wäre die bessere Lösung in SQL für diesen Fall, aber wie Sie LINQ verwenden. Es könnte ein bisschen schwierig sein. –