Asp.net mvc 优化mvc代码
我有这样的密码Asp.net mvc 优化mvc代码,asp.net-mvc,optimization,Asp.net Mvc,Optimization,我有这样的密码 var prj = _dataContext.Project.FirstOrDefault(p => p.isPopular == true); if (prj != null) { prj.isPopular = false; _dataContext.SaveChanges(); } prj = Details(id); p
var prj = _dataContext.Project.FirstOrDefault(p => p.isPopular == true);
if (prj != null)
{
prj.isPopular = false;
_dataContext.SaveChanges();
}
prj = Details(id);
prj.isPopular = true;
_dataContext.SaveChanges();
idea——我只有一条在isPopular字段中值为true的记录,所以我得到它并将其设为false,然后通过id获取对象并将其设为isPopular true。我不喜欢两次调用savechanges。
有什么想法吗
var prj = _dataContext.Project.FirstOrDefault(p => p.isPopular == true);
if (prj != null)
{
prj.isPopular = false;
}
var prj2 = Details(id);
prj2.isPopular = true;
_dataContext.SaveChanges();
当然,您应该为prj2找到更好的变量名。您的代码将无法编译。如果您将FirstOrDefault更改为Where,当没有IsPopular==true的记录时,if将抛出异常。我修复了它,我们都==偶尔会发生一次@jfar,这不是问题所在。我没看到。嗯。。。你确定要打电话给我吗?单身?prj是一个对象,没有单个method@user276640,这就是我第一次评论的意思。它不会编译。您还必须为第二行添加一个空检查,而不是使用单字符。
var prj = _dataContext.Project.FirstOrDefault(p => p.isPopular == true || p.id ==id);
prj.Single(p => p.isPpopular == true).IsPopular = false;
prj.Single(p => p.isPpopular == id).IsPopular = true;
_dataContext.SaveChanges();