У меня есть проект с 8 слоями, я хочу отредактировать запись; например: На уровне репозитория: 1: в IRepository: IEnumerable GetArea (int id);
void Edit(CRM_Area crm);
2: в репозитории:
public IEnumerable<CRM_Area> GetArea(int ID)
{
return _db.CrmAreas.Where(x=>x.ID==ID);
}
public void Edit(CRM_Area crmArea)
{
_db.Entry(crmArea).State=EntityState.Modified;
}
и в уровне услуг: 1: в Iservices:
void Delete(int ID);
IEnumerable<_CRM_AreaList> GetArea(int ID);
void Edit(_CRM_AreaEdit crmArea);
2: в Службах:
public IEnumerable<_CRM_AreaList> GetArea(int ID)
{
return _areaRepository.GetArea(ID).Select(Mapper.Map<CRM_Area, _CRM_AreaList>);
}
public void Edit(_CRM_AreaEdit crmAreaEdit)
{
var editArea = Mapper.Map<_CRM_AreaEdit, CRM_Area>(crmAreaEdit);
_areaRepository.Edit(editArea);
}
и в веб-слое в контроллере:
[HttpGet] public ActionResult Edit (int ID) {
return View(_areaServices.GetArea(ID));
}
[HttpPost]
public ActionResult Edit(_CRM_AreaEdit crmAreaEdit)
{
_areaServices.Edit(crmAreaEdit);
return RedirectToAction("List");
}
Но это не работает. Пожалуйста, помогите мне - как я могу отредактировать и в чем моя ошибка? Когда я нажимаю на редактирование, элемент модели, переданный в словарь, имеет тип 'System.Linq.Enumerable + WhereSelectEnumerableIterator`2 [CRM.Web.Models.CRM_Area, CRM.Web.ViewModel.Area._CRM_AreaList]', но этот словарь требуется элемент модели типа "CRM.Web.ViewModel.Area._CRM_AreaEdit".