我希望在实体模型表示的数据在特定表内发生变化时得到通知。模型是否意识到潜在的数据更改?如果确实发生了事件,我该如何订阅它?实体模型在数据更改时触发事件吗?
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. 动态CRM事件触发对实体条目的更改吗?
- 4. 引导程序在模型更改时触发两次事件 - “更改”和“更改:模型属性名称”
- 5. 在运行时更改实体模型数据库
- 6. 骨干 - 在特定属性发生更改时触发事件的模型
- 7. 在骨干js中更新模型时,更改事件不会触发
- 8. 骨干模型更改事件没有在设置模型后触发
- 9. 如何在切换触发器更改时触发事件?
- 10. Angular如何在模型值更改后触发复选框的更改事件?
- 11. URL更改时是否触发事件
- 12. 更改事件未触发
- 13. 触发更改事件
- 14. 如何在模型更新时触发事件
- 15. 实体框架:修改模型时如何更新数据库
- 16. 触发事件在窗体上发生事件时触发窗体
- 17. SAPUI5:如何在模型内部的值更改时触发事件?
- 18. 骨干模型设置值不会触发更改事件
- 19. 当窗体加载时触发wpf组合更改事件
- 20. dojo TabContainer有更改标签时触发的事件吗?
- 21. 获取文本更改统一时触发的事件吗?
- 22. 在数据库表上更改/更新/删除时触发的jQuery事件
- 23. jQuery UI自动完成更改事件不实时触发
- 24. 骨干模型获取返回空白JSON,模型不触发更改事件?
- 25. Backbone.js - 更改模型阵列上的事件不会触发元素更改
- 26. 更改数据库字段并更新ADO实体模型(.edmx)?
- 27. 在更改后未触发SelectedIndexChanged事件
- 28. 任何实时模型变更事件
- 29. JPA实体生命周期事件vs数据库触发器
- 30. 如何在模型属性发生变化时触发事件
据我知道..没有,但到EDMX所做的任何更改是由自己的代码来完成。所以你可以实现这样的事件。 – 2011-04-26 14:29:48