[英]EF 4 can't seem to call SaveChanges
我有以下方法覆蓋此上下文:
public class MyContext : DbContext
{
public DbSet<Contract> Contracts{get;set;}
public override int SaveChanges()
{
Contract ctr = new Contract
{
ContractId = "CT99999991",
ContractNumber = "9000",
LastModifiedDate = DateTime.Now,
GracePeriod = DateTime.Now,
ShipByDate = DateTime.Now,
ExpirationDate = DateTime.Now
};
this.Contracts.Add(ctr);
return base.SaveChanges();
}
}
無論我嘗試了什么,我都不會成功使這部分代碼成功。 我希望在發生SaveChanges事件時將上層合同保存在數據庫中。 我有什么要注意的嗎?
這不是我自己嘗試做的事情,但是可能因為您已經在SaveChanges()方法內部,所以上下文的更改列表已經創建。 因此,當您將新的Contract
添加到上下文的Contracts
集合中時,您將必須使上下文重建其更改列表,這些更改列表需要在調用base.SaveChanges()之前保留回數據庫。
相反,您應該掛入ObjectContext的SavingChanges事件 。 這將允許您保存到存檔/審核表。 這是一篇文章 ,說明如何執行此操作。 我以前做過,而且效果很好。
我迷上了自定義Context類(類MyContext:DbContext),但是它沒有用。
最后,我求助於加入WCF數據服務類(類MyDataService:DataService),並且效果很好。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.