2017-03-10 4 views
0

6 개의 테이블 (개인, 주소, 전자 메일, 전화, 교육, 출생, 그림)으로 구성된 데이터베이스가 있습니다. 테이블 페르소나 (주소, 이메일, 전화, 교육) 및 일대일 (출생, 그림) 테이블 교육의 많은 관계 jede 관계가 하나 하나의 관계입니다 주소 Orez 일대 다 (이메일, 전화) . 데이터베이스는 엔티티 프레임 워크에서 먼저 코드로 만들고 비어 있지 않은 빈을 만듭니다. 엔티티 실행을 추가하면 사용자가 데이터, 교육을 포함하지 않으면 예외없이 실행됩니다.데이터베이스 엔터티 프레임 워크에 엔터티를 추가하면 예외가 발생합니다. 'System.Data.Entity.Infrastructure.DbUpdateException

'System.Data.Entity.Infrastructure.DbUpdateException'형식의 처리되지 않은 예외가 EntityFramework.dll에서 발생했습니다

추가 정보 : 항목을 업데이트하는 중 오류가 발생했습니다. 자세한 내용은 내부 예외를 참조하십시오. 내 수업의

코드

[Table ("Person")] 
public class Person 
{ 
    [Key] 
    [Column ("Person_ID")] 
    public int PersonID { get; set; } 
    [Column ("Name")] 
    [Required] 
    [MaxLength (50)] 
    public string Name { get; set; } 
    [Column ("Surname")] 
    [Required] 
    [MaxLength (50)] 
    public string Surname { get; set; } 
    [Timestamp] 
    public byte[] RovVersion { get; set; } 


    public virtual IList<Adress> Adress { get; set; } 
    public virtual IList<Email> Mail { get; set; } 
    public virtual IList<Phone> Phone { get; set; } 
    public virtual IList<Education> Education { get; set; } 
    public virtual Birth Birth { get; set; } 
    public virtual Pictures Pictures { get; set; } 
} 
[Table ("Education")] 
public class Education 
{ 
    [Key] 
    [Column("Education_ID")] 
    public int EducationID { get; set; } 
    [Column("Name")] 
    [MaxLength(50)] 
    public string NameOfScool { get; set; } 
    [Column("Start")] 
    public DateTime StartEducaton { get; set; } 
    [Column("End")] 
    public DateTime EndEducation { get; set; } 
    [ForeignKey("Person")] 
    [Column("Person_ID")] 
    public int PersonID { get; set; } 
    [ForeignKey("Adress")] 
    [Column("Adress_ID")] 
    public int AdresID { get; set; } 

    public virtual Person Person { get; set; } 
    public virtual Adress Adress { get; set; } 
    public virtual IList<Email> Mail { get; set; } 
    public virtual IList<Phone> Phone { get; set; } 
} 
[Table("Adress")] 
public class Adress 
{ 
    [Key] 
    [Column ("Adress_ID")] 
    public int AdressID { get; set; } 
    [Column ("Adress_1")] 
    [MaxLength (50)] 
    public string Adress1 { get; set; } 
    [Column ("Adress_2")] 
    [MaxLength (50)] 
    public string Adress2 { get; set; } 
    [Column ("Number")] 
    [MaxLength (10)] 
    public string Number { get; set; } 
    [Column ("Post")] 
    [MaxLength (50)] 
    public string Post { get; set; } 
    [Column ("Code_Post")] 
    [MaxLength (6)] 
    public string CodePost { get; set; } 
    [Column ("Region")] 
    public EnumRegion Region { get; set; } 
    [Column ("Country")] 
    [MaxLength (50)] 
    public string Country { get; set; } 

    public virtual Person Person { get; set; } 
} 
[Table ("Birth")] 
public class Birth 
{ 
    [ForeignKey ("Person")] 
    [Column ("Birth_ID")] 
    public int BirthID { get; set; } 
    [Column("Place_Of_Birth")] 
    [MaxLength (50)] 
    public string Place { get; set; } 
    [Column ("Date_Of_Birth")] 
    public DateTime Date { get; set; } 

    public virtual Person Person { get; set; } 
} 
[Table("Phone")] 
public class Phone 
{ 
    [Key] 
    [Column("Phone_ID")] 
    public int PhoneId { get; set; } 
    [Column("Phone_Number")] 
    public int PhoneNumber { get; set; } 
    [Column("Choise_Phone")] 
    public EnumChoise Choise { get; set; } 

    public virtual Person Person { get; set; } 
    public virtual Education Education { get; set; } 
} 
[Table ("Email")] 
public class Email 
{ 
    [Key] 
    [Column("Adress_ID")] 
    public int EmailId { get; set; } 
    [Column("Mail")] 
    [MaxLength(50)] 
    public string Mail { get; set; } 
    [Column("Choise_Mail")] 
    public EnumChoise Choise { get; set; } 

    public virtual Person Person { get; set; } 
    public virtual Education Education { get; set; } 
} 

컨텍스트 클래스

public class EFContext :DbContext 
{ 
    public EFContext() 
     :base ("name=EntityModel") 
    { 
     Database.SetInitializer(new MigrateDatabaseToLatestVersion<EFContext, 
    Migrations.Configuration>()); 

    } 
    public DbSet<Person> Person { get; set; } 
    public DbSet<Adress> Adress { get; set; } 
    public DbSet<Email> Mail { get; set; } 
    public DbSet<Phone> Phone { get; set; } 
    public DbSet<Birth> Birth { get; set; } 
    public DbSet<Education> Education { get; set; } 
    public DbSet<Pictures> Pictures { get; set; } 

    protected override void OnModelCreating(DbModelBuilder modelBuilder) 
    { 
     modelBuilder.Entity<Person>().Property(e => e.RovVersion).IsRowVersion(); 
     base.OnModelCreating(modelBuilder); 
    } 

나는이 원인을 알고 당신이 볼 필요가있을 것이다, 오류 메시지 상태로

+0

은'DbUpdateException'의 내부 예외은 무엇인가에 대한 기본 키의 부족에 대해 불평 할 수있는 말을 추측에서 코드 얼핏? 엔티티를 추가하는 데 사용하는 코드는 어떻게 생겼습니까? –

답변

0

도와주세요하지 않습니다 자세한 내용은 내부 예외를 참조하십시오.

나는 그것이 "출생"테이블