最佳答案
下面代码中的代码行 price = co?.price ?? 0,
给出了上面的错误,但是如果我从 co.?
中删除 ?
,它就可以正常工作。
我试图跟随 这个 MSDN 的例子他们在线使用 select new { person.FirstName, PetName = subpet?.Name ?? String.Empty };
所以,似乎我需要了解什么时候使用 ?
与 ??
和什么时候不使用。
错误 :
表达式树 lambda 可能不包含空传播操作符
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,
....
....
};
....
....
}