2014-03-06 3 views
1

데이터베이스에 레코드를 추가하려고하는데 오류가 표시됩니다. An exception of type 'System.Data.Entity.Infrastructure.DbUpdateException' occurred in EntityFramework.dll but was not handled in user code 프로그램을 실행할 때이 오류가 발생하며 웹에서 내보기를 열지 않습니다. 이것은 내 컨트롤러MVC를 사용하여 데이터베이스에 레코드를 추가하는 방법

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); 
     } 
    } 
} 

둘째 때까지 그레이딩 m y 데이터베이스 upgrade-database forgone 키는 어떻게 지정합니까? 이것은 SQL 서버 관리를 통해 수행해야합니까?

+2

null이 아닌 입력란에 null 데이터를 삽입하거나 고유 한 필드에 데이터를 복제하려고 시도했을 수 있습니다. SaveChanges를 수행 할 때 DoB 열이 DateTime.Max 또는 DateTime.Min이 아닌지 확인하십시오. –

+0

내부 예외를 알려주시겠습니까? – Rohan

+0

@ManishMishra이 프로그램을 실행할 때 오류가 발생합니다. 내 양식을 표시하지 않습니다. –

답변

3

이 경우는 table 이외의 개체에 레코드를 추가/삽입하려고 할 때 발생합니다. Movie이 (가) 테이블이나 뷰입니까?

테이블 인 경우 테이블에 중복을 허용하지 않는 primary key이 있는지 확인하십시오.

기본 키를 추가하지 않은 경우 Entity Framework 모델을 업데이트하고 다시 실행하십시오.

업데이트 : 비어있는 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); 
    } 
+0

내보기를 실행할 때 오류가 발생, 내 양식조차 열리지 않습니다. 무비는 테이블입니다. –

+0

이것이 제 기본 키입니다.'public int ID {set; 도망; }'그리고 영화는 제 프로젝트입니다 - (내 실수) –

+0

내 대답을 다시 읽고 몇 가지 중요한 업데이트를 추가했습니다. – Bellash

관련 문제