我使用以下方法覆盖此上下文:
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事件发生时将上部合同保存在数据库中。 我有什么东西可以忽略吗?
答案 0 :(得分:1)
这不是我自己试图做的事情,但有可能因为你已经在SaveChanges()方法中,所以已经创建了上下文的更改列表。因此,当您将新的Contract
添加到上下文的Contracts
集合时,您必须在重新调用base.SaveChanges()之前重建其需要持久化回数据库的更改列表。 / p>
答案 1 :(得分:0)
你应该做的是挂钩SavingChanges event of the ObjectContext。这将允许您保存到存档/审计表。 Here is an article解释了如何做到这一点。我以前做过这件事并且效果很好。
答案 2 :(得分:0)
我正在使用自定义Context类(类MyContext:DbContext)并且它无法正常工作。
我最终使用了挂钩到WCF数据服务类(类MyDataService:DataService),它运行良好。