簡體   English   中英

EF 4似乎無法調用SaveChanges

[英]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()之前保留回數據庫。

相反,您應該掛入ObjectContextSavingChanges事件 這將允許您保存到存檔/審核表。 這是一篇文章 ,說明如何執行此操作。 我以前做過,而且效果很好。

我迷上了自定義Context類(類MyContext:DbContext),但是它沒有用。

最后,我求助於加入WCF數據服務類(類MyDataService:DataService),並且效果很好。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM