Entity framework core 如何计算DbContext中添加到的DbSet行数

Entity framework core 如何计算DbContext中添加到的DbSet行数,entity-framework-core,Entity Framework Core,查找高和低,但找不到通过行的更改状态计算[DbContext].[DbSet Entity]中的行数的语法。具体地说,我想知道一个实体/表中有多少行被添加并且挂起了SaveChanges()。您可以使用DbContext.ChangeTracker.Entries方法重载之一(类似于): var addedCount=db.ChangeTracker.Entries() .Count(e=>e.State==EntityState.Added); 您可以使用DbContext.ChangeTra

查找高和低,但找不到通过行的更改状态计算[DbContext].[DbSet Entity]中的行数的语法。具体地说,我想知道一个实体/表中有多少行被添加并且挂起了SaveChanges()。

您可以使用
DbContext.ChangeTracker.Entries
方法重载之一(类似于):

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

您可以使用
DbContext.ChangeTracker.Entries
方法重载之一(类似于):

var addedCount=db.ChangeTracker.Entries()
.Count(e=>e.State==EntityState.Added);
(第一个答案,所以要温柔) 我也有类似的问题。一种方法是覆盖此处提出的上下文保存更改方法:

但在您的情况下,上下文类上的特殊方法可能更合适:

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);
}
public虚拟元组CountChanges()
{
var modified=ChangeTracker.Entries().Where(x=>x.State==EntityState.modified.Count();
var added=ChangeTracker.Entries().Where(x=>x.State==EntityState.added.Count();
返回新元组(修改、添加);
}
(第一个答案,所以要温柔) 我也有类似的问题。一种方法是覆盖此处提出的上下文保存更改方法:

但在您的情况下,上下文类上的特殊方法可能更合适:

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);
}
public虚拟元组CountChanges()
{
var modified=ChangeTracker.Entries().Where(x=>x.State==EntityState.modified.Count();
var added=ChangeTracker.Entries().Where(x=>x.State==EntityState.added.Count();
返回新元组(修改、添加);
}

谢谢,这很有效。我很难找到EF Core的全面文档,而且有警告说它与EF6有重要区别,所以我不敢参考EF6文档。是的,绝对没有类文档,所以我们只有Intellisense:(这里是我可以包括lnk到EF6文档的少数几个地方之一,因为(至少目前)这一部分是相同的。谢谢,这很有效。我很难找到EF Core的全面文档,并且有警告说它与EF6有重要区别,所以我不太愿意参考EF6文档。是的,绝对没有类文档,所以我们只有Intellisense:(这里是我可以包含lnk到EF6文档的少数几个地方之一,因为(至少目前)这个特定部分是相同的。