haitham sha
haitham sha

Reputation: 90

try avoid null reference with SingleOrDefault

I have this query which is join from 2 entities

.GroupJoin(uow.Airports.List(),fbm=>fbm.FlyBillMains.AirPortId_Arrival,arr=>arr.AirPortId,(fbm,arr)=>new FlyBillMainDetails
                   {
                       BranchName = fbm.BranchName,
                       CompanyCode = fbm.CompanyCode,
                       CompanyName = fbm.CompanyName,
                       CustomerName = fbm.CustomerName,
                       FlyBillMains = fbm.FlyBillMains,
                       PayTypeName = fbm.PayTypeName,
                       PolicyCode = fbm.PolicyCode,
                       CountryName = fbm.CountryName,
                       AirportNameArrival=arr.SingleOrDefault().Name,
                       Address = fbm.Address,
                       ShipperName = fbm.ShipperName,
                       ShipperAddress = fbm.ShipperAddress,
                       ShipperPhone = fbm.ShipperPhone,
                       ConsigeeName = fbm.ConsigeeName,
                       ConsigeeAddress = fbm.ConsigeeAddress,
                       ConsigeePhone = fbm.ConsigeePhone
                   })

in this line

AirportNameArrival=arr.SingleOrDefault().Name

i got the null reference if AirportNameArrival is null Knowing that AirportNameArrival is string

Upvotes: 0

Views: 288

Answers (1)

AlexD
AlexD

Reputation: 32576

You could use Null-conditional Operator ?.:

string AirportNameArrival = arr.SingleOrDefault()?.Name;

You also can combine it with Null-coalescing operator ?? to get empty string by default:

string AirportNameArrival = arr.SingleOrDefault()?.Name??"";

Upvotes: 2

Related Questions