Я использую следующий проект GitHub для общего хранилища и UOW шаблонаGeneric UnitOfWork & Repository модели с AutoMapper метания исключения «другой объект того же типа, уже имеет один и то же значение первичного ключа»
https://genericunitofworkandrepositories.codeplex.com/
[HttpPost]
[Route("update")]
public HttpResponseMessage Update(HttpRequestMessage request, ComponentViewModel component)
{
return CreateHttpResponse(request,() =>
{
HttpResponseMessage response = null;
if (!ModelState.IsValid)
{
response = request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
}
else
{
var componentDb = UnitOfWork.Repository<Component>().Find(component.ID);
if (componentDb == null)
response = request.CreateErrorResponse(HttpStatusCode.NotFound, "Invalid component.");
else
{
componentDb = Mapper.Map<ComponentViewModel, Component>(component);
UnitOfWork.Repository<Component>().Update(componentDb); // <-- ERROR'S HERE
UnitOfWork.SaveChanges();
response = request.CreateResponse<ComponentViewModel>(HttpStatusCode.OK, component);
}
}
return response;
});
}
Я получаю следующее исключение при UnitOfWork.Repository<Component>().Update(componentDb);
прикрепления объекта типа «Компонент» не удался, потому что другая организация одного и того же типа уже есть один и тот же значение первичного ключа
Я считаю, что это связано с кодом AutoMapper Mapper.Map перед ним, но я не уверен, как это исправить.
Пожалуйста, сообщите, как исправить использование.
Пожалуйста, посмотрите на мой ответ на [ASP.NET MVC - Прикрепление Субъект «MODELNAME» типа не удалось, поскольку другой объект того же типа уже имеет такое же значение первичного ключа] (http://stackoverflow.com/questions/23201907/asp-net-mvc-attaching-anity-of-type-modelname-failed-because -лор свой-чужой/39557606 # 39557606). –