[英]how to check if there is a null value inside LINQ?
CarrierDetailViewModel.SiteOptionModel
, this sometimes has a null value, then it throws the error like the below. CarrierDetailViewModel.SiteOptionModel
,这有时有一个 null 值,然后它会抛出如下错误。 Is there any way to check if there is no truck.SiteId
then make it null otherwise assign value.有什么方法可以检查是否没有truck.SiteId
然后将其设为 null 否则赋值。 How can I stop throwing the error but make it null when truck.SiteId
is null.当truck.SiteId
为 null 时,我怎样才能停止抛出错误但使其成为 null。
from truck in database.Truck
where truck.CarrierId == carrierId
&& (truck.IsDeleted == null || truck.IsDeleted == false)
orderby truck.Code
select new CarrierDetailViewModel.TruckModel2
{
Id = truck.TruckId,
Site = new CarrierDetailViewModel.SiteOptionModel{
Id = (int)truck.SiteId,
Name = truck.Site.Name,
Code = truck.Site.Code
}
} ;
Error错误
System.InvalidOperationException: 'Nullable object must have a value System.InvalidOperationException: 'Nullable object 必须有一个值
I would create a method, eg CreateTruckModel2
我会创建一个方法,例如CreateTruckModel2
from truck in database.Truck
where truck.CarrierId == carrierId
&& (truck.IsDeleted == null || truck.IsDeleted == false)
orderby truck.Code
select CreateTruckModel2(truck);
and和
public TruckModel2 CreateTruckModel2(Truck truck)
{
if(truck?.SiteId == null)
{
return null;
}
return new CarrierDetailViewModel.TruckModel2
{
Id = truck.TruckId,
Site = new CarrierDetailViewModel.SiteOptionModel{
Id = (int)truck.SiteId,
Name = truck.Site.Name,
Code = truck.Site.Code
}
};
}
Or just skip those with a where condition?或者只是跳过具有 where 条件的那些?
from truck in database.Truck
where truck.CarrierId == carrierId
&& (truck.IsDeleted == null || truck.IsDeleted == false)
&& truck.SiteId != null
orderby truck.Code
select new CarrierDetailViewModel.TruckModel2
{
Id = truck.TruckId,
Site = new CarrierDetailViewModel.SiteOptionModel{
Id = (int)truck.SiteId,
Name = truck.Site.Name,
Code = truck.Site.Code
}
} ;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.