找出实体框架模型是否在DbContext构造过程中更改

问题描述:

是否有可能在实体框架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

你可以尝试ChangeTracker

public bool ISContextChanges() 

{

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

}

+0

这将检查数据是否改变,而不是模式(模型)。 –