Я проверил все темы по этой ошибке с правой рамкой, но не могу найти свою проблему.
Я использую ядро entityframework.
У меня есть достижение и группа критериев в выполнениикласс.
Когда я впервые сохраняю выполнение, все работает.
Затем, когда я хочу обновить его, я выдал ошибку "Невозможно вставить явное значение для столбца идентификаторов в таблице CriteriaGroups .. .
"name": "Accomplishment1",
"criteriaGroupId": 4,
"categories": [],
"criteriaGroupFk": {
"gOperator": 0,
"criterias": [],
"groups": [],
"id": 4
},
"id": 2
}
Классовая модель выполнения:
[Table("Accomplishments")]
public class Accomplishment : AuditedEntity
{
[Required]
public virtual string Name { get; set; }
public virtual int? CriteriaGroupId { get; set; }
[ForeignKey("CriteriaGroupId")]
public CriteriaGroup CriteriaGroupFk { get; set; }
public List<Category> Categories { get; set; }
}
Класс для группы критериев следующий:
[Table("CriteriaGroups")]
public class CriteriaGroup : CreationAuditedEntity
{
public virtual GroupOperator GOperator { get; set; }
public List<Criteria> Criterias { get; set; }
public List<CriteriaGroup> Groups { get; set; }
}
В моем коде я вижучто это идет, чтобы обновить объект выполнения. Но я думаю, что entityframework видит группу критериев как новую, даже если у нее есть идентификатор.
Что с ней не так?
Я борюсь с 2 дня наэто.
private async Task Update(CreateOrEditAccomplishmentDto input)
{
var accomplishment = await _accomplishmentRepository.FirstOrDefaultAsync((int)input.Id);
ObjectMapper.Map(input, accomplishment);
await CurrentUnitOfWork.SaveChangesAsync();
}