C# 如何从可空类型获取属性?

C# 如何从可空类型获取属性?,c#,entity-framework,linq,C#,Entity Framework,Linq,我试图使用virtual从另一个表中的某个类型的实例中获取价格合计,但问题是该实例可以为null,并且每当它为null时就会抛出异常。是否有任何方法允许类型为null,并且仍然可以获得属性的返回 //试图从products表中获取产品价格,当product为null时引发异常 {order.Product.PriceTotal} 每当产品为null时,它就会抛出一个异常 您只需在类型之后添加null传播运算符? //试图从products表中获取产品价格,当product为null时引发异常

我试图使用
virtual
从另一个表中的某个类型的实例中获取价格合计,但问题是该实例可以为null,并且每当它为null时就会抛出异常。是否有任何方法允许类型为null,并且仍然可以获得属性的返回

//试图从products表中获取产品价格,当product为null时引发异常
{order.Product.PriceTotal}

每当产品为null时,它就会抛出一个异常

您只需在类型之后添加null传播运算符

//试图从products表中获取产品价格,当product为null时引发异常
{order.Product?.PriceTotal}

这意味着如果
Product
为null,它将
PriceTotal
设置为null

您所要做的就是在类型之后添加null传播操作符

//试图从products表中获取产品价格,当product为null时引发异常
{order.Product?.PriceTotal}

这意味着如果
产品
为空,它会将
价格总计
设置为空

否,如果产品为空,那么你怎么能知道该产品的价格?对一个不存在的产品定价是没有意义的。您需要对产品执行检查以查看它是否为空。如果它不为空,则可以获得价格。否则就得不到价格。我想多次测试产品可以填充还是为空。然后进行初始检查,查看order.Product是否为空。如果产品不为空,那么使用order.product.PriceTotalNo获取价格。如果产品为空,那么您如何能够获得该产品的价格?对一个不存在的产品定价是没有意义的。您需要对产品执行检查以查看它是否为空。如果它不为空,则可以获得价格。否则就得不到价格。我想多次测试产品可以填充还是为空。然后进行初始检查,查看order.Product是否为空。如果product不为null,则使用order.product.PriceTotal获取价格