Вопрос: Цена линии price = co?.price?? 0,
price = co?.price?? 0,
в следующем коде приведена приведенная выше ошибка. но если я удалю ?
от co.?
он отлично работает. Я пытался следовать этому примеру MSDN, где они используются ?
on line select new { person.FirstName, PetName = subpet?.Name?? String.Empty };
select new { person.FirstName, PetName = subpet?.Name?? String.Empty };
Значит, мне нужно понять, когда использовать ?
с ??
и когда не нужно.
Ошибка:
дерево выражений лямбда не может содержать нулевой оператор распространения
public class CustomerOrdersModelView
{
public string CustomerID { get; set; }
public int FY { get; set; }
public float? price { get; set; }
....
....
}
public async Task<IActionResult> ProductAnnualReport(string rpt)
{
var qry = from c in _context.Customers
join ord in _context.Orders
on c.CustomerID equals ord.CustomerID into co
from m in co.DefaultIfEmpty()
select new CustomerOrdersModelView
{
CustomerID = c.CustomerID,
FY = c.FY,
price = co?.price ?? 0,
....
....
};
....
....
}