如何覆盖saveChanges()根据EF中的不同db表

时间:2013-11-18 10:15:53

标签: asp.net entity-framework-5

例如,我在两个表中都有教师和学生表,由&创建。按字段更新 我想填写覆盖saveChanges()方法,当我添加这些表的任何新对象,但我想如何知道哪个对象调用“覆盖saveChanges()”请帮助我 到目前为止我很难编入输入表格名称

public override int SaveChanges()         {

        AppConstants._Teacher.CreatedBy = "waleed";


        return base.SaveChanges();
    }

1 个答案:

答案 0 :(得分:0)

你应该创建这样的界面:

public interface ICreatedBy
{
    string CreatedBy { get; set; }
}

并让您的实体实现它。

然后尝试做这样的事情:

public override int SaveChanges()
{
      foreach (var entry in this.ChangeTracker.Entries()
                                .Where(e=>e.Entity is ICreatedBy && 
                                    (e.State == EntityState.Added || 
                                     e.State == EntityState.Modified)))
      {
           ICreatedBy e = (ICreatedBy) entry.Entity;
           e.CreatedOn = "waleed";
      }
      return base.SaveChanges();
 }