une arborescence d'expression lambda ne peut pas contenir une valeur null à la propagation de l'opérateur

Question: La ligne price = co?.price ?? 0, dans le code suivant me donne l'erreur ci-dessus. mais si je supprime ? de co.? il fonctionne très bien. J'essayais de suivre cette MSDN exemple où ils sont à l'aide de ? sur la ligne select new { person.FirstName, PetName = subpet?.Name ?? String.Empty }; il me semble que j'ai besoin de comprendre quand utiliser ? avec ?? et quand ne pas.

Erreur:

une arborescence d'expression lambda ne peut pas contenir une valeur null à la propagation de l'opérateur

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,
                  ....
                  ....
              };
    ....
    ....
 }
Merci de poster l'erreur...
L'homme que je souhaite C# pris en charge ce!

OriginalL'auteur nam | 2017-06-21