2017-03-10 4 views
0

私は6つのテーブル(人物、住所、電子メール、電話、教育、生年月日、画像)で構成されるデータベースを持っています。表のペルソナは、(住所、電子メール、電話、教育)と一対一の(生まれつき、ピクチャ)テーブル教育の多くに関係があります1対1のアドレスオレズ1対多の関係。 データベースはエンティティフレームワークによって最初にコードによって作成され、空白は問題なしで作成されます。エンティティをデータベースエンティティフレームワークに追加すると、例外 'System.Data.Entity.Infrastructure.DbUpdateExceptionが生成されます。

EntityFramework.dllでハンドルされていない例外「System.Data.Entity.Infrastructure.DbUpdateException」が発生しました

この資料は以下の製品について記述したものです。

追加情報:エントリの更新中にエラーが発生しました。詳細については、内部例外を参照してください。私のクラスの

コード

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

Contextクラス

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

「誕生」テーブルの上には、主キーの欠如不満かもしれないと思いますか?エンティティを追加するために使用しているコードはどのように見えますか? –

答えて

0

助けてくださいません詳細については内部の例外を参照してください。

あなたのコードで簡単に見、推測で私は `DbUpdateException`の内部例外では何

関連する問題