Обновление AutoMapper Nested Collection - PullRequest
0 голосов
/ 26 июня 2019

Я использую 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 и список языков.Где я не прав и что мне здесь изменить?

...