找出实体框架模型是否在DbContext构造过程中更改
问题描述:
是否有可能在实体框架DbContext的构建期间检测基础模型是否发生了变化?找出实体框架模型是否在DbContext构造过程中更改
的原因是,我安装的DbContext施工期间ObjectMaterialized
事件处理程序,但这种失败的InvalidOperationException
(基本模式已经改变)如果模式发生了变化,所以我想唯一条件化该事件处理附件如果型号有不是更改。
答
你可以尝试ChangeTracker
public bool ISContextChanges()
{
return this.ChangeTracker.Entries().Any(a => a.State == EntityState.Added
|| a.State == EntityState.Modified
|| a.State == EntityState.Deleted);
}
+0
这将检查数据是否改变,而不是模式(模型)。 –
尝试'如果(context.Database.CompatibleWithModel(真)){...}'的https:// coding.abel.nu/2012/03/prevent-ef-migrations-from-creating-or-changing-the-database/ –
谢谢@SteveGreene - 解决了这个问题。 – Alex