我正在尝试优化应用程序的性能。我需要确保用户能够检索仅属于登录用户的项目。
假设我正在从数据库中检索对象。哪个代码更有效?
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();
我认为第二个更有效率,因为我们只进行一次数据库调用。
这个问题的主要目的是问我这样做是否正确?或者有更有效的方法吗?
我还确保这些控制器具有[Authorize]属性。
由于
答案 0 :(得分:0)
第二个更有效,但你必须考虑在现代机器上第一个解决方案引入的开销绝对不可测量!