我正在尝试将记录添加到数据库中但它显示错误: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来完成的吗?
答案 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);
}