Я использую AutoMapper
, чтобы обновить вложенную коллекцию классов вместе с другими свойствами, но я получаю следующее исключение:
Cannot insert explicit value for identity column in table 'tblEmpLanguages' when IDENTITY_INSERT is set to OFF.
Я использую Swagger для тестирования API.
Класс:
public class Test : BasicEntity
{
public Test()
{
this.Languages = new List<Language>();
}
public string Name { get; set; }
public List<Language> Languages { get; set; }
}
Базовый объект:
public class BasicEntity: IEntity
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int Id { get; set; }
public DateTime CreatedDate { get; set; } = DateTime.Now;
public int CreatedBy { get; set; }
[DatabaseGenerated(DatabaseGeneratedOption.Computed)]
public DateTime? ModifiedDate { get; set; } = DateTime.Now;
public int ModifiedBy { get; set; }
public bool Active { get; set; } = true;
}
Картограф:
CreateMap<Test, Test>()
.ForMember(dest => dest.Languages, opt => opt.MapFrom(src => src.Languages));
Контроллер (код обновления):
var dest = _mapper.Map(source, dest);
_repo.Tests.UpdateTest(dest);
_repo.Save(); // Exception thrown here
Обновление Swagger:
{
"Id": 1,
"CreatedDate": "2019-06-26T09:46:51.563Z",
"CreatedBy": 0,
"ModifiedDate": "2019-06-26T09:46:51.563Z",
"ModifiedBy": 0,
"Active": true,
"Name": "ABC",
"Languages": [
{
"Id": 1,
"CreatedDate": "2019-06-26T09:46:51.563Z",
"CreatedBy": 0,
"ModifiedDate": "2019-06-26T09:46:51.563Z",
"ModifiedBy": 0,
"Active": true,
"EmpId": 0,
"LanguageId": 0,
"Mothertongue": true
}
]
}
Я пытался обновитьСвойство Name и список языков.Где я не прав и что мне здесь изменить?