![](/img/trans.png)
[英]Adding Data to Database (Error: System.Data.Entity.Infrastructure.DbUpdateException)
[英]Adding an entity to a database entity framework generates an exception 'System.Data.Entity.Infrastructure.DbUpdateException
我有一個包含六個表(人,地址,電子郵件,電話,教育,出生,圖片)的數據庫。 表角色具有與許多(地址,電子郵件,電話,教育)和一對一(出生,圖片)的關系。表教育是一對一的地址orez一對多(電子郵件,電話)的關系。 首先由實體框架通過代碼創建數據庫,然后創建空而沒有porblemu。 直到您不包含任何類型的數據(教育),添加實體運行都不會出現問題,然后引發異常:
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; }
}
上下文類
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);
}
我不知道是什么原因造成的,請提供幫助
如錯誤消息所述,您將需要查看內部異常以獲取更多信息。
快速查看您的代碼,我猜想它可能是在抱怨“出生”表上缺少主鍵
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.