Adding same entity object more than once with EF Core

Solution 1:

You can't add a single instance of a class, change one of its properties, and add it again expecting a new instance to be added to your database. All that will happen is that you change the property of the single instance you have added.

Instead, you will need to map the DTO multiple times, so that you add multiple instance of your entity class to the DbSet.

You also need to use && instead of || in your if condition. Use OR (||) will result in a NullReferenceException if the entityDto.ids collection is null.

var now = _helper.GetCurrentLocalDateTime();
if (entityDto.ids != null && entityDto.ids.Count > 0)
{
    foreach (var id in entityDto.ids)
    {
        var myEntity = _mapper.Map<AEntity>(entityDto);
        myEntity.updatedAt = now;
        myEntity.CreatedAt = now;
        myEntity.id = id;
        await _dbContext.myEntities.AddAsync(myEntity);
    }
}
else
{
    var myEntity = _mapper.Map<AEntity>(entityDto);
    myEntity.updatedAt = now;
    myEntity.CreatedAt = now;
    await _dbContext.myEntities.AddAsync(myEntity);
}

await _dbContext.SaveChangesAsync();