public ActionResult EditRow()
{
using (SchoolContext db = new SchoolContext())
{
var v = db.Students.ToList();
return View(v);
}
}
[HttpPost]
public ActionResult EditRow(List<Student> student)
{
if (ModelState.IsValid)
{
using (SchoolContext db = new SchoolContext())
{
foreach (var i in student)
{
var c = db.Students.Where(a => a.ID.Equals(i.ID)).FirstOrDefault();
if (c != null)
{
c.LastName = i.LastName;
c.FirstMidName = i.FirstMidName;
c.EnrollmentDate = i.EnrollmentDate;
}
}
db.SaveChanges();
return RedirectToAction("Index");
}
ViewBag.Message = "Successfully updated";
return View(student);
}
else
{
ViewBag.Message = "failed";
return View(student);
}
现在我已经实现了此代码,但是服务器需要更多时间来编辑记录。有什么办法可以快速编辑记录? 如何最小化执行时间? 以及如何检查Visual Studio中的时间复杂度?
答案 0 :(得分:2)
有一个非常有用的Entity Framework Extension,网址为 https://entityframework-extensions.net/
它也可以作为nuget包提供。该扩展程序为您提供批量更新和插入内容,并且效果很好。
可以从软件包管理器窗口Install-Package Z.EntityFramework.Extensions
上面的软件包现在看来是商业软件包,但我知道那里有一些类似的扩展库也可以做同样的事情。
答案 1 :(得分:0)
我将这个问题标记为已经回答。如果您搜索“ ef批量更新”之类的关键字,则有很多明确的答案。
使用例如实体框架6。如上所述,@ John S已经提到您可以使用扩展库进行批量更新。在这种情况下,我不确定您所说的“时间复杂性”是什么意思。如果您使用OR映射器,则无论如何都要对SQL语句进行配置,e.g. SQL Profiler。