Paul
Paul

Reputation: 3142

Checking if navigation property is null Entity Framework

I have a model which contains a User. Each user must have a Person record. A person record may or may not have an Address record.

When I fetch the currently logged in User's address I am currently using the following which to me seems incredibly messy. Is there a better way to do this?

public Address GetAddress()
    {
        using (eziTraceEntities db = new eziTraceEntities())
        {
            if (db.Users.Where(u => u.ID == Globals.UserID).FirstOrDefault().Person.Address != null)
                return db.Users.Where(u => u.ID == Globals.UserID).FirstOrDefault().Person.Address;
            else
                return new Address();
        }
    }

Thanks!

Upvotes: 1

Views: 1263

Answers (1)

Sidharth Mudgal
Sidharth Mudgal

Reputation: 4264

You can use the null coalesce operator:

using (eziTraceEntities db = new eziTraceEntities())
    {
        return db.Users.Where(u => u.ID == Globals.UserID).FirstOrDefault().Person.Address ?? new Address();
    }

Upvotes: 2

Related Questions