我有一个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”类型的模型项。
答案 0 :(得分:0)
在您的存储库中尝试保存更改。 请记住,您需要在编辑后保存更改。
public void Edit(CRM_Area crmArea)
{
_db.Entry(crmArea).State=EntityState.Modified;
_db.SaveChanges();
}