есть в BaseEntity):
public class DetailInfoEntity : BaseEntity<int>
{
public virtual List<GlassOptionEntity>? GlassOptions { get; set; }
}
public class GlassOptionEntity : BaseEntity<int>
{
public string? Name { get; set; }
public string? Description { get; set; }
[JsonIgnore] public virtual List<DetailInfoEntity>? DetailInfos { get; set; } = default!;
}
Можно ли сделать Insert в таблицу DetailInfoEntities, если указавать только id существующих GlassOptionEntity. Через сваггер пытаюсь передать такую DetailInfoDto:
{
"id": 0,
"glassOptions": [
{
"id": 1
}
]
}
Но база ругается, что я пытаюсь дублировать первичный ключ при вставке GlassOptionEntity. Как правильно указать, чтобы она привязывалась GlassOptionEntity с id=1, а не пыталась вставить новый. Отношения настроены
modelBuilder.Entity<DetailInfoEntity>().HasMany(x => x.GlassOptions).WithMany(x => x.DetailInfos).UsingEntity(j => j.ToTable("DetailInfoGlassOptionsRelation"));
Аттачнуть существующую
то есть сначала, запрос Find(id) - достаём существующую и вручную добавляем в List? Автоматом это не настраивается?
Нет, new сущности с известным Id, затем attach в контекст, тогда когда библа будет детектить изменения она не пометит её для добавления. Если я верно понял твою проблему. Дефолтную доку по трекингу efcore от мелкософта стоит заботать
Обсуждают сегодня