2017-02-17 81 views
0

是否有可能在實體框架DbContext的構建期間檢測基礎模型是否發生了變化?找出實體框架模型是否在DbContext構造過程中更改

的原因是,我安裝的DbContext施工期間ObjectMaterialized事件處理程序,但這種失敗的InvalidOperationException(基本模式已經改變)如果模式發生了變化,所以我想唯一條件化該事件處理附件如果型號有不是更改。

+0

嘗試'如果(context.Database.CompatibleWithModel(真)){...}'的https:// coding.abel.nu/2012/03/prevent-ef-migrations-from-creating-or-changing-the-database/ –

+0

謝謝@SteveGreene - 解決了這個問題。 – Alex

回答

0

你可以嘗試ChangeTracker

public bool ISContextChanges() 

{

return this.ChangeTracker.Entries().Any(a => a.State == EntityState.Added 
              || a.State == EntityState.Modified 
              || a.State == EntityState.Deleted); 

}

+0

這將檢查數據是否改變,而不是模式(模型)。 –