如何計算添加到DbContext中的DbSet行

entity-framework-core

查看高和低但無法找到語法來計算[DbContext]。[DbSet Entity]中行數的變化狀態。具體來說,我想知道一個實體/表中有多少行被添加並且正在等待SaveChanges()。

一般承認的答案

您可以使用的一個DbContext.ChangeTracker.Entries方法重載(類似於EF6 ):

var addedCount = db.ChangeTracker.Entries<YourEntity>()
    .Count(e => e.State == EntityState.Added);

熱門答案

(第一個答案,所以要溫柔)我遇到了類似的問題。一種方法是覆蓋此處建議的上下文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);
}


Related

許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow