Как редактировать 1000 записей одновременно, используя структуру объекта за меньшее время - PullRequest
0 голосов
/ 18 ноября 2018
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?

Ответы [ 2 ]

0 голосов
/ 21 ноября 2018

Я бы отметил этот вопрос, как уже ответил.Существует множество заявленных ответов, как это сделать, если вы ищете ключевые слова, такие как «ef массовые обновления».

Это известная проблема при использовании, например, entity-framework-6.Как уже упоминалось, @John S уже упоминал, что вы можете использовать библиотеки расширений для массовых обновлений.Я не уверен, что вы имеете в виду под «сложностью времени» в этом контексте.Если вы используете маппер OR, вам все равно следует профилировать операторы SQL, , например, SQL Profiler .

0 голосов
/ 20 ноября 2018

Существует очень полезное расширение Entity Framework, доступное по адресу https://entityframework -extensions.net /

Он также доступен в виде пакета nuget. Это расширение дает вам массовые обновления и вставки и работает очень хорошо.

Пакет nuget можно установить с помощью этой команды из окна диспетчера пакетов Install-Package Z.EntityFramework.Extensions

Вышеуказанные пакеты, похоже, являются коммерческим пакетом, но я знаю, что есть некоторые похожие библиотеки расширений, которые делают то же самое.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...