質問:次のコードのprice = co?.price ?? 0,
行に上記のエラーが表示されます。しかし、co.?
から?
を削除してもうまくいきます。私はthis MSDN exampleに従うことを試みていたところの?
を使用しているので、をいつ使うべきかを理解する必要があると思われます。式ツリーラムダには、伝搬演算子が含まれていない可能性があります。
エラー:
暗黙のラムダ式式ツリーラムダは、あなたがから引用された例では、オブジェクトにLINQを使用してヌル伝搬オペレータ
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,
....
....
};
....
....
}
エラーを投稿してください... –
男私はC#がこれをサポートしたかったです! – nawfal