Замена сущности в LINQ - PullRequest
0 голосов
/ 29 мая 2009

Я использую вид редактирования в ASP.NET MVC, и после редактирования он возвращает отредактированный объект обратно. Каков наилучший способ вернуть отредактированные значения обратно в базу данных.

    [AcceptVerbs(HttpVerbs.Post)]
    public ActionResult Edit(int id, Movies EditedMovie)
    {
        var orginalMovie = _db_linq.Movies.First(e => e.Id == id);
        if (!ModelState.IsValid)
            return View(orginalMovie);

        _db_linq.Movies.Attach(EditedMovie, true);
        _db_linq.SubmitChanges();

        return RedirectToAction("Index");
    }

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

orginalMovie = EditedMovie; тоже не работает Я тоже копирую каждое свойство отдельно, т. Е.

orginalMovie.Name = EditedMovie.Name;

Ответы [ 2 ]

2 голосов
/ 29 мая 2009

Для Entity Framework :

Изменение:

    _db_linq.Movies.Attach(EditedMovie, true);

до:

    _db_linq.Movies.ApplyPropertyChanges(EditedMovie);
0 голосов
/ 29 мая 2009

Я никогда не использовал, но существует: http://msdn.microsoft.com/en-us/library/system.data.objects.objectcontext.applypropertychanges.aspx

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