Итак, я пытаюсь подсчитать количество людей, которые были импортированы в базу данных. Там могут быть дубликаты людей, поэтому, если человек уже есть в базе данных, я бы пропустил его. Это то, что у меня есть:
HumanImporter.cs
var humanSet = _dbContext.Set<HumanEntity>();
var entitiesToBeAdded = humanList.Where(x => humanSet.All(y => y != x));
_dbContext.AddRange(entitiesToBeAdded);
_dbContext.SaveChanges();
return entitiesToBeAdded.Count();
Моя конфигурация базы данных:
ApplicationDbContext.cs
public class ApplicationDbContext : DbContext
{
public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options) : base(options)
{
}
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
base.OnConfiguring(optionsBuilder);
}
protected override void OnModelCreating(ModelBuilder builder)
{
base.OnModelCreating(builder);
builder.ApplyConfiguration(new HumanEntityTypeConfiguration());
}
}
HumanEntityTypeConfiguration.cs
public class HumanEntityTypeConfiguration : IEntityTypeConfiguration<HumanEntity>
{
public void Configure(EntityTypeBuilder<HumanEntity> builder)
{
builder.MakeEntityBase()
.ToTable("Humans");
}
}
Проблема заключается в том, что HumanImporter возвращает счетчик 0. HumanSet имеет счетчик 0, а entityToBeAdded равен нулю. Тем не менее, сущности по-прежнему импортируются в базу данных, что меня смущает. Что-то мне не хватает?