In this tips I am going to show how you can deal with the Nullable values in LINQ queries and how you can achieve functionality like SQL ISNULL function.

Let's put it as a problem statement

I am dealing with the LINQ queries, In which I have to diplay "N/A" were the value is null for the given property/column.

Now you can have multiple solution to do that

Solution 1

You can use ternary operator as shwon in below example. HereMobileNo = "N/A" for the null values
[sourcecode language="csharp"]
var user = from u in Users
join uc in UserClients on u.Id equals uc.UserId
into myuserwithclient
from m in myuserwithclient.DefaultIfEmpty()
select new {
Id=u.Id,
FirstName=u.FirstName,
LastName=u.LastName,
UserId=m.UserId,
MobileNo = (m.MobileNo == null) ? "N/A" : m.MobileNo
};
[/sourcecode]

Solution 2

Use special Coalescing operator (??) as showin in below example. Here MobileNo = "N/A" for the null values
[sourcecode language="csharp"]
var user = from u in Users
join uc in UserClients on u.Id equals uc.UserId
into myuserwithclient
from m in myuserwithclient.DefaultIfEmpty()
select new {
Id=u.Id,
FirstName=u.FirstName,
LastName=u.LastName,
UserId=m.UserId,
MobileNo = m.MobileNo == null ?? "N/A"
};
[/sourcecode]

Above solution shows how easily we handle null value as well as achieve functionality of the SQL ISNULL function.
Source : http://pranayamr.blogspot.com/2010/12/linq-and-nullable-values-or-sql-isnull.html