【问题标题】:Replacing Entity in LINQ替换 LINQ 中的实体
【发布时间】:2009-05-29 08:30:38
【问题描述】:

我在 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;

【问题讨论】:

    标签: asp.net-mvc linq replace


    【解决方案1】:

    对于实体框架

    变化:

        _db_linq.Movies.Attach(EditedMovie, true);
    

    到:

        _db_linq.Movies.ApplyPropertyChanges(EditedMovie);
    

    【讨论】:

    • 您使用的是 Linq to SQL 还是实体框架?这种方法适用于实体框架。
    • 私有 MovieApp.Models.MovieDBEntities _db = new MovieApp.Models.MovieDBEntities();
    【解决方案2】:
    猜你喜欢
    • 1970-01-01
    • 2011-04-06
    • 2012-07-26
    • 2011-03-29
    • 1970-01-01
    • 2012-08-22
    • 2011-04-27
    • 1970-01-01
    相关资源
    最近更新 更多