我希望在實體模型表示的數據在特定表內發生變化時得到通知。模型是否意識到潛在的數據更改?如果確實發生了事件,我該如何訂閱它?實體模型在數據更改時觸發事件嗎?
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