2016-12-26 65 views
1

我想为SaveChanges中的模型类设置一些属性。实体框架。 SaveChanges覆盖。跟踪器返回null

我的代码

selectedEntityList总是空的,但记录被添加到数据库中。

public override int SaveChanges() 
{ 
    var selectedEntityList = ChangeTracker.Entries().Where(x=> x.State == EntityState.Added); 

    foreach (var entity in selectedEntityList) 
    { 
     var type = entity.GetType(); 
     var properites = entity.GetType().GetProperties(); 

     foreach(var pr in properites.Where(p=>p.Name=="Position")) 
     { 
      pr.SetValue(type, "150", null); 
     } 
    } 

    return base.SaveChanges(); 
} 
+0

删除“.Where(x => x.State == EntityState.Added)”并尝试。 –

+0

不幸的是,没有帮助 – Starter

+0

'pr.SetValue(type,“150”,null);'应该是'pr.SetValue(entity,“150”,null);' – haim770

回答

1

现在,代码工作正常。谢谢你们!

public override int SaveChanges() 
{ 
    var selectedEntityList = ChangeTracker.Entries(); 
    foreach (var entity in selectedEntityList) 
    { 
     var type = entity.GetType(); 
     var properites = entity.Entity.GetType().GetProperties(); 
     var pr = properites.SingleOrDefault(p => p.Name == "Position"); 
      pr.SetValue(entity.Entity, 150, null); 
    } 
    return base.SaveChanges(); 
}