2012-11-21 86 views
1

我有一个包含用户的模型。每个用户必须有一个人员记录。人员记录可能有也可能没有地址记录。检查导航属性是否为空实体框架

当我获取当前登录的用户的地址我目前正在使用以下这对我来说似乎令人难以置信的混乱。有一个更好的方法吗?

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(); 
     } 
    } 

谢谢!

回答

2

可以使用null coalesce operator

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

谢谢,我甚至没有想到! – Paul