查看高低,但找不到用于计算[DbContext]。[DbSet Entity]中行数的行的语法。具体来说,我想知道一个实体/表中有多少行被添加并且正在等待SaveChanges()。
答案 0 :(得分:1)
您可以使用其中一个DbContext.ChangeTracker.Entries
方法重载(类似于EF6):
var addedCount = db.ChangeTracker.Entries<YourEntity>()
.Count(e => e.State == EntityState.Added);
答案 1 :(得分:1)
(第一个答案,所以要温柔) 我遇到了类似的问题。一种方法是覆盖此处建议的上下文SaveChanges方法:https://www.exceptionnotfound.net/entity-change-tracking-using-dbcontext-in-entity-framework-6/
但在你的情况下,你的上下文类的特殊方法可能更合适:
public virtual Tuple<int, int> CountChanges()
{
var modified = ChangeTracker.Entries().Where(x => x.State == EntityState.Modified).Count();
var added = ChangeTracker.Entries().Where(x => x.State == EntityState.Added).Count();
return new Tuple<int, int>(modified, added);
}