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);
}
나는이 원인을 알고 당신이 볼 필요가있을 것이다, 오류 메시지 상태로
은'DbUpdateException'의 내부 예외은 무엇인가에 대한 기본 키의 부족에 대해 불평 할 수있는 말을 추측에서 코드 얼핏? 엔티티를 추가하는 데 사용하는 코드는 어떻게 생겼습니까? –