Исключение GenericAdd: на объект сущности нельзя ссылаться несколькими экземплярами IEntityChangeTracker - PullRequest
0 голосов
/ 12 марта 2019

У меня проблема с методом 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();
    }
...