【发布时间】:2011-06-07 17:11:41
【问题描述】:
从视图模型更新 NHibernate 实体的常用方法是什么?
我有一个视图模型编辑器,其中显示了我的所有数据,这些数据是通过返回 DTO 的存储库获取的。然后将 DTO 属性映射到我的视图模型属性。如果我再次获取它,我可以更新我的实体,更新所需的选择属性
有没有更好的办法?
【问题讨论】:
标签: c# nhibernate mvvm
从视图模型更新 NHibernate 实体的常用方法是什么?
我有一个视图模型编辑器,其中显示了我的所有数据,这些数据是通过返回 DTO 的存储库获取的。然后将 DTO 属性映射到我的视图模型属性。如果我再次获取它,我可以更新我的实体,更新所需的选择属性
有没有更好的办法?
【问题讨论】:
标签: c# nhibernate mvvm
您可以使用 AutoMapper,如果视图模型与实体紧密匹配,这将特别容易。
How to simply map an NHibernate ISet to IList using AutoMapper
【讨论】:
我通常的方法是使用EditXViewModel 来处理XViewModel 的更改跟踪,并包含一个SaveCommand 来执行实际的实体更新。这确保用户可以撤消所做的更改,而无需记住他们在数据库中的内容(它还减少了事务的数量)。
当我开始走同样的道路时,以下文章非常有帮助:
【讨论】:
SaveCommand 中,我会加载给定的项目,进行更改,然后提交事务。