2014-01-21 36 views
0

我正試圖優化我的應用程序的性能。我需要確保用戶能夠檢索只屬於登錄用戶的項目。驗證對象屬於MVC/SQL中的用戶

比方說,我正在從數據庫檢索對象。哪個代碼更高效?

var _User = db.users.FirstOrDefault(U => U.username == HttpContext.User.Identity.Name); 
if (_User == null) 
{ 
    return HttpNotFound(); 
} 
var _Articles = db.articles.Where(A => A.user_id == _User.id); 
return View(_Articles.ToList()); 

if (User.Identity.IsAuthenticated) 
{ 
    var _Articles = db.articles.Include("user").Where(A => A.user.username == HttpContext.User.Identity.Name); 
    return View(_Articles.ToList()); 
} 
return HttpNotFound(); 

我相信第二個是更有效,因爲我們只使一個DB調用。

這個問題的主要目的是問我是否以正確的方式做這件事?還是有更有效的方法呢?

我也確保這些控制器具有[授權]屬性。

感謝

回答

0

第二個是比較有效的,但你必須考慮到,在現代機器的第一個解決方案引入的開銷絕對是無法衡量的!