Мне нужно скопировать коллекцию recodrs и добавить их в db с новыми идентификаторами.EF Core на Npgsql Индексы AddRange
var subEntities= ct.SubEntities.Where(qf => qf.ParentEntityId == oldParentEntityId).ToList();
subEntities.ForEach(qf => { qf.ParentEntityId = newParentEntityId; qf.Id = default(int); });
ct.SubEntities.AddRange(subEntities);
Когда AddRange
закончились все объекты subEntities
имеет неудобные Идентификаторы как -2147482647 и они идут в дб, хотя есть правильная последовательность. Как это исправить?
Мои объектные классы и отображение:
public class SubEntity
{
public int Id { get; set; }
public Guid ParentEntityId { get; set; }
public virtual ParentEntity ParentEntity { get; set; }
//props
}
public class ParentEntity
{
public Guid Id { get; set; }
public virtual List<SubEntity> SubEntities { get; set; }
//props
}
//OnModelCreating
builder.Entity<ParentEntity>()
.HasMany(q => q.SubEntities)
.WithOne(qf => qf.ParentEntity)
.HasForeignKey(qf => qf.ParentEntityId)
.OnDelete(Microsoft.EntityFrameworkCore.Metadata.DeleteBehavior.Cascade);
Вы пытались создать новые экземпляры с помощью метода Select? Мне нужно знать о привязке ваших объектов, можете ли вы отправить этот код, пожалуйста? –
@ H.Herzl Да, я просто попытался выбрать новые экземпляры из коллекции источников и AddRange их - все равно. – Slip
Мне нужно увидеть полный код, чтобы сохранить изменения, можете ли вы отправить сообщение? –