如何使用MVC将记录添加到数据库中

时间:2014-03-06 10:58:53

标签: c# asp.net-mvc entity-framework

我正在尝试将记录添加到数据库中但它显示错误:An exception of type 'System.Data.Entity.Infrastructure.DbUpdateException' occurred in EntityFramework.dll but was not handled in user code我在运行程序时遇到此错误,它甚至没有在Web浏览器中打开我的视图

这是我的模特:

public class MovieModel
{
    public int ID { set; get; }
    public string FirstName { set; get; }
    public string SecondName { set; get; }
    public DateTime DOB { set; get; }
    public string Type{ set; get; }
}

这是我的控制者:

namespace Movie.Controllers
{
    public class MoviesController : Controller
    {
        private ApplicationDbContext db = new ApplicationDbContext();

        //
        // GET: /Movies/
        public ActionResult AddUsers(MovieModel model)
        {
            if (ModelState.IsValid)
            {
                db.Movies.Add(model);
                db.SaveChanges();
            }
            return View(model);
        }
    }
}

第二个问题在升级我的数据库upgrade-database时,如何指定放弃密钥?这是必须通过microsoft sql server management来完成的吗?

1 个答案:

答案 0 :(得分:3)

当您尝试在table以外的对象中添加/插入记录时,会发生这种情况。 Movie是表格还是视图?

如果是桌子,请确保您的桌子有primary key,不允许重复。

如果没有添加主键并更新实体框架模型并再次运行。

更新:您可以创建一个空的get动作。为此,请按以下步骤更新控制器

    //
    // GET: /Movies/
    public ActionResult AddStudent()
    {
        return View();
    }


     //
    // POST: /Movies/
    [Post]
    public ActionResult AddStudent(MovieModel model)
    {
        if (ModelState.IsValid)
        {
            db.Movies.Add(model);
            db.SaveChanges();
        }
        return View(model);
    }