我正在用Entity Framework 4.1構建一個ASP.Net MVC 3 Web應用程序。我正在使用數據庫優先方法。ASP.Net MVC 3實體框架4.1重寫SaveChanges
我也使用了ADO.NET DbContext生成器爲了創建POCO類而不是使用自動生成的實體對象。當您使用ADO.NET 發電機的DbContext它將創建兩個新項目,一個.TT文件生成每個實體的POCO類,也是 .Context.tt文件生成一個派生的DbContext類(用於查詢和保存數據)。
在我的應用程序中,我編寫了代碼來執行特定實體的審計,此代碼在重寫覆蓋SaveChanges()方法我已創建。 我如下都放在這個覆蓋的SaveChanges()方法Context.cs類的內部和它工作得很好
public partial class LocumEntities : DbContext
{
public LocumEntities()
: base("name=LocumEntities")
{
}
public override int SaveChanges()
{
//Audit Code Executes in Here
return base.SaveChanges();
}
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
throw new UnintentionalCodeFirstException();
}
public DbSet<Audit> Audits { get; set; }
public DbSet<Form> Forms { get; set; }
//Other DbSets
}
但是,只要我即使在我EDMX圖移動或更新實體,然後保存,我的自定義SaveChanges()方法在Context.cs類中被刪除。 有沒有什麼辦法可以阻止這種情況發生,或者我應該在其他地方使用我的SaveChanges()方法?
有人能請指教嗎?
謝謝。
有道理。乾杯。 – tgriffiths