Ste*_*ams 4 c# nhibernate fluent-nhibernate automapper asp.net-mvc-2
收到此错误:具有相同标识符值的另一个对象已与会话关联:27,实体:xxx.Core.Event
基本上,我有从我的poco映射的视图模型,反之亦然.违规代码在这里:
Mapper.CreateMap<EventsAddEditViewModel, Event>();
Event thisEvent = _eventRepository.GetById(viewModel.Id);
thisEvent = Mapper.Map<EventsAddEditViewModel, Event>(viewModel);
thisEvent.EventType = new EventType { Id = viewModel.EventTypeId };
ValidationResult result = _eventService.Save(thisEvent);
Run Code Online (Sandbox Code Playgroud)
基本上我是从数据库加载事件,然后将视图模型映射到此事件并保存.否则,视图上没有显示的字段(例如dateCreated)将无法正确保存.
有没有什么方法NHibernate和AutoMapper可以很好地发挥这方面的作用?
我正在为我的会话提供者使用OnePerRequestBehavior.
保存时给NHibernate提供相同的对象.
为此,我们使用不同的重载Mapper.Map().此外,当编译器可以找出类型时,不需要指定它们.
也GetById()可能返回null.
Mapper.CreateMap<EventsAddEditViewModel, Event>();
Event thisEvent = _eventRepository.GetById( viewModel.Id );
if (thisEvent == null) {
thisEvent = new Event();
}
Mapper.Map( viewModel, thisEvent );
thisEvent.EventType = new EventType { Id = viewModel.EventTypeId };
ValidationResult result = _eventService.Save( thisEvent );
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1444 次 |
| 最近记录: |