我希望在实体模型表示的数据在特定表内发生变化时得到通知。模型是否意识到潜在的数据更改?如果确实发生了事件,我该如何订阅它?实体模型在数据更改时触发事件吗?
2
A
回答
6
你的问题其实是非常不清楚。
我希望在实体模型表示的数据在特定表内发生变化时得到通知。
这是什么意思?
是否要通知您的应用程序没有完成数据库更改?那么答案是:没有EF不提供任何此类通知系统。你必须建立自己的。
是否希望收到关于您对实体所做更改的通知?答案是INotifyPropertyChanged界面和ObservableCollectio n导航属性。在实体中使用这些结构可以在实体更改时触发事件。
您是否想知道数据库中将执行哪些更改?覆盖SaveChanges
或处理SavingChanges
并使用ObjectStateManager
获取已更改实体的列表。 Here是一些例子,如何获得给定类型的添加实体列表。
1
没有,也没有对Change
引发的事件,只有当你做你SaveChanges
能赶上你需要什么...
为,尽量寻找this question/answers
1
如果你的目的是保存数据只是万一有那么变化参考以下链接:
http://msdn.microsoft.com/en-us/library/system.data.objects.objectcontext.savingchanges.aspx
1
NuGet package EntityFramework.Triggers很好地包装了为插入,更新和删除订阅实体的功能。
只是用DbContextWithTriggers包装你的上下文;
public class MyContext : DbContextWithTriggers {
public DbSet<Person> People { get; set; }
}
然后订阅触发事件
var mycontext = new MyContext() { TriggersEnabled = true };
Triggers<Person>.Inserting += entry =>
{
Console.WriteLine($"Person: {entry.Entity}");
};
相关问题
- 1. 更新数组时,模型的更改事件不会触发?
- 2. 模型更改时触发更改事件
- 3. 骨干 - 在特定属性发生更改时触发事件的模型
- 4. 在骨干js中更新模型时,更改事件不会触发
- 5. URL更改时是否触发事件
- 6. Angular如何在模型值更改后触发复选框的更改事件?
- 7. 更改事件未触发
- 8. 触发更改事件
- 9. 实体框架:修改模型时如何更新数据库
- 10. 当窗体加载时触发wpf组合更改事件
- 11. 获取文本更改统一时触发的事件吗?
- 12. jQuery UI自动完成更改事件不实时触发
- 13. 骨干模型获取返回空白JSON,模型不触发更改事件?
- 14. 在更改后未触发SelectedIndexChanged事件
- 15. JPA实体生命周期事件vs数据库触发器
- 16. 如何在数据库位置更改时更新.edmx文件(实体数据模型工具)
- 17. 当模型包含明文数据结构时,实时更新模型更改
- 18. Python触发文件更改事件
- 19. 在axwindowsmediaplayer上更改时间时触发事件
- 20. 当从数据库生成模型时更改EF实体命名模式
- 21. 如何在模型更改时在md-select上触发ng-change?
- 22. 实体框架:如何在数据库更改时刷新模型?
- 23. 骨干模型更改不会触发
- 24. 基于此模型触发另一模型的数据更改(M2M)
- 25. 触发更改事件当淘汰赛视图模型属性更新
- 26. ADO.NET实体模型+ DataGridView:如何编写数据库更改
- 27. 如何从实体模型更新实体中的数据库修改?
- 28. 在从本地文件加载数据时,骨干会触发“更改”事件吗?
- 29. 实体数据模型System.ArgumentOutOfRangeException
- 30. 基于模型事件触发jQuery的
据我知道..没有,但到EDMX所做的任何更改是由自己的代码来完成。所以你可以实现这样的事件。 – 2011-04-26 14:29:48