由於某種原因,當db
爲空時,此方法將返回什麼?編譯很好,using
塊之外沒有return
語句。使用語句在此方法中將返回什麼?
public Guid GetUserId(string username)
{
using (AndeDBEntities db = new AndeDBEntities())
{
var userId =
from u in db.Users
where u.Username == username
&& u.Deleted != true
select new { UserID = u.UserId };
if (userId == null || userId.Count() == 0)
return Guid.Empty;
else
return userId.First().UserID;
}
}
@Reed:當訪問db.Users或調用userId.Count()或userId.First()時,會發生異常嗎?我的理解是,由於延遲執行LINQ查詢,它不會實際執行查詢,直到迭代或訪問。 – 2010-04-16 17:53:03
@Chris:它會碰到db.Users,因爲它需要訪問它試圖構建表達式樹。它不會實際遍歷用戶,但它仍然會擊中它... – 2010-04-16 18:59:33