c# enity framework的一些坑

c# enity framework的一些坑

1.從數據庫中更新模型

想把數據庫新建的表更新到模型中,結果死活導不進去,明明存在這個表了。。
後來對比了前面導入成功的表的字段設計,發現都有一個主鍵,於是突然想起來:

數據庫第二範式規定:一是表必須有一個主鍵;二是沒有包含在主鍵中的列必須完全依賴於主鍵,而不能只依賴於主鍵的一部分。

直接加個主鍵
啪,導入成功。。。。

2.表中含有自增列後插入失敗

當 IDENTITY_INSERT 設置爲 OFF 時,不能爲表‘XXX’中的標識列插入顯式值。

這時候可能是由於數據庫裏相應的表是否已經設置自動增加了,如果設置 了,你但是EF模型中還沒有更新,你重新加載一次表到edmx,再試一下。
如果還出現錯誤,可以在你的Context的OnModelCreating中添加如下:

 public partial class BookEntities : DbContext
{
    public BookEntities()
        : base("name=BookEntities")
    {
    }

    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
    //在這裏添加,設置主鍵映射自增
        modelBuilder.Entity<Book>().Property(b => b.BookID)
    .HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity);
    }

    public virtual DbSet<Book> Book { get; set; }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章