C# – SELECT NEW with a potentially null field using LINQ and Entity Framework

clinq

I want to quickly select some rows, format it nicely for a dropdownlist/selectlist or something like that – but I have a field in the db, that is nullable (DateOfBirth).

var athletes = (from at in _db.Athletes
           select new{
                  Name = at.Name + " " + at.DateOfBirth, 
                  Id = at.AthleteId 
                  }).ToList();

Is there a way to handle nullable types inside the LINQ in a case like this?

Edit:

I was not paying attention to the fact, that since this is using entity framework, methods that work with standard LINQ cannot be used unless they have a SQL translation.

  • DateOfBirth is a Nullable < DateTime >
  • Source is Entity Framework 4

Best Answer

You can use the null coalesce operator, see Equivalent of SQL ISNULL in LINQ?.

Something like:

var athletes = (from at in _db.Athletes
           select new{
                  Name = at.Name + " " + (at.DateOfBirth ?? ""), 
                  Id = at.AthleteId 
                  }).ToList();