У меня проблема с методом post create в архитектуре Ntiers Asp.Net:
Исключение GenericAdd: на объект сущности нельзя ссылаться несколькими экземплярами IEntityChangeTracker
.
Когда я перестраиваю проект, нет проблем, нет ошибок, и когда я помещаю список DTO AppRoles в комментарии, его работа и сохраняется в базе данных
UI => контроллер:
public ActionResult Create(VMWUserCreate _Model, int RoleID)
{
string iMsg = "";
string Msg = "";
{
if (ModelState.IsValid)
{
List<SelectListItem> ListeRoles = new List<SelectListItem>();
try
{
DTOAppRoles _LesrOlesChoisis = new DTOAppRoles();
IEnumerable<DTOAppRoles> _AllRoles = new List<DTOAppRoles>();
_ServiceRole.GenericGetAll(ref _AllRoles, ref iMsg);
foreach (var item in _AllRoles)
{
ListeRoles.Add(new SelectListItem { Value = item.Id.ToString(), Selected = false, Text = item.Id.ToString("000") + "-" + item.Description.ToString() });
}
_ServiceRole.GenericGetByID(RoleID, ref _LesrOlesChoisis, ref Msg);
//}
DTOUser _DTOUser = new DTOUser();
_DTOUser.Id = _Model.Identifiant;
_DTOUser.Description = _Model.Description;
_DTOUser.Name = _Model.UserName;
_DTOUser.LesRoles = new List<DTOAppRoles>();
_DTOUser.LesRoles.Add(_LesrOlesChoisis);
if (_ServiceUser.GenericAdd(_DTOUser, ref iMsg))
{
_Model.MessageInfo = "Opération est effectuée avec succés ";
ViewBag.LesRoles = ListeRoles;
return View(_Model);
}
else
{
_Model.MessageError = "Opération a échoué : " + iMsg;
ViewBag.LesRoles = ListeRoles;
return View(_Model);
}
}
catch (Exception e)
{
iMsg = "Exception" + e.Message;
ViewBag.LesRoles = ListeRoles;
_Model.MessageError = "Opération a échoué : " + iMsg;
return View(_Model);
}
}
return View();
}