[英]EF Code First: Where can I find the SavingChanges Event?
OK,這可能是一個新手的問題,但如何/我在哪里可以訂閱ObjectContext.SavingChanges事件在此提到的例子崗位 。
我的演示應用程序中只有兩個相關的類:“Country”類和一個包含EF Code First“定義”的類:
internal class TestDb : DbContext
{
public DbSet<Country> Countries { get; set; }
}
任何提示都受到高度贊賞。
你應該能夠做到這一點:
internal class TestDb : DbContext
{
public void SetSavingChanges(EventHandler evt)
{
var oc = this as IObjectContextAdapter;
oc.ObjectContext.SavingChanges -= evt;
oc.ObjectContext.SavingChanges += evt;
}
public DbSet<Country> Countries { get; set; }
}
從我在MSDN上看到的內容, DbContext
將ObjectContext
的實例包裝為外觀,而不是公開此特定事件。
但是, DbContext
確實有一個帶有ObjectContext
的構造函數重載 - 您可以使用它來傳入ObjectContext
並在其上訂閱SavingChanges
事件。
using(ObjectContext context = new ObjectContext(myConnectionString))
{
using(DbContext dbContext = new DbContext(context, true))
{
}
}
另一種方式可能是,例如:
Public Class MainForm
Private WithEvents myObjectContext As ObjectContext
Private myDbContext As DbContext
...
Private Sub MainForm_Load(sender As Object, e As EventArgs) Handles Me.Load
myDbContext = New DbContext
myObjectContext = CType(myDbContext, IObjectContextAdapter).ObjectContext
...
Private Sub ObjectContextSavingChanges(sender As Object, e As EventArgs) Handles myObjectContext.SavingChanges
'Your code hear
End Sub
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.