2013-05-16 7 views
1

ASP .NET MVC의 응용 프로그램에서 프로 시저 삽입에 문제가 있습니다. 나는 나의 환경을 기술하고 나의 문제를 설명 할 것이다.탐색 속성이있는 새 엔터티를 만들 때 오류가 발생했습니다. Entity Framework

나는이 개 모델 클래스가 : 프로젝트 및 작업

프로젝트

[Table("Project")] 
public class Project 
{ 
    [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)] 
    public int ProjectID { get; set; } 
    [Required(ErrorMessage = "Name project required")] 
    [StringLength(300, MinimumLength = 1)] 
    [DisplayName("Name of Project")] 
    public string NameProject { get; set; } 

    //Other properties... 

    public Project() 
    { 
     Tasks = new HashSet<Task>(); 
    } 
    public virtual ICollection<Task> Tasks { get; set; } 

} 

TASK

[Table("Task")] 
public class Task 
{ 
    [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)] 
    public int TaskID { get; set; } 
    [Required(ErrorMessage = "Task Name required")] 
    [StringLength(300, MinimumLength = 1)] 
    public string TaskName { get; set; } 


    public virtual Project Project { get; set; } 

} 

을 내가 dbContext를 관리하는 코드를 삽입 할 곳은 윈도우 작업 관리자입니다 . 이것은 createNewTask 함수입니다.

public void createTask(Task task,int projectID) 
{ 
    Project pr = db.Project.Find(projectID);   
    task.Project = pr; 
    db.Task.Add(task); 
    db.SaveChanges(); 

} 

그리고 여기 내 데이터베이스에서 스냅 샷입니다 :

Database Snapshot

그리고 문제는 : 나는 새 작업을 삽입하려고하면

, 시스템은 나에게 줄 오류 : * 엔티티 'Task'*의 'Project_ProjectID'열에 null 값을 추가 할 수 없습니다.

그러나 나는 이것을 이해하지 못한다 !! 내가 응용 프로그램을 디버깅 할 때 'int projectID'변수가 올바르다는 것을 알 수 있으며 'Project pr = db.Project.Find (projectID)'줄이 잘 작동하지만 ''에 도착하면 SaveChanges() '... 추락했습니다.

누구든지 나를 도와 줄 수 있습니까?

답변

0

작업 엔터티에 다음 속성을 추가해야합니다. - public virtual int ProjectId.

마지막으로 다음과 같은 항목을 추가하는 것이 좋습니다. - Project.Task.Add (yourCurrentTask).

+0

안녕하세요! 도움을 주셔서 감사합니다,하지만이 작동하지 않습니다. 프로젝트에서 작업 목록에 작업을 추가 할 것을 제안합니다. 하지만 'ProjectId'는 예외가 나와있는 열이 아니기 때문에 다른 것은 작동하지 않습니다. –

+0

이제 알았습니다. 이 게시물을 통해 CodeFirst http://msdn.microsoft.com/en-us/data/hh134698.aspx의 관계를 이해하는 것이 좋습니다. 내 문제는 modelBuilder에서 유창한 API 구성을 추가해야한다는 것이 었습니다. 고마워요 khnumdev –

관련 문제