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