到目前为止,在我所有的c#数据库驱动应用程序中,我一直在使用Active Records。但现在,我的应用需要将持久性代码从业务对象分离出来。我已经阅读了很多关于Martin Fowler的数据映射模式的帖子,但我对这个模式的了解仍然非常有限。
让我们举一个例子:
如果我有两个表 - Customer和CustomerParameters。CustomerParameters表包含创建新客户所需的默认客户值。
那么我就必须创建一个CustomersMapper类来处理所有的Customer持久性。我的Customer和CustomersList类将与此mapper类合作以持久化客户数据。
我有以下几个问题:
如何在不破坏某些业务规则的情况下将原始数据传输到我的Customer类,并从mapper中传回数据?使用DTO?
在我的Mapper类中是否可以有SaveAll和LoadAll方法来更新和加载多个客户的数据?如果可以,在SaveAll的情况下,如何知道何时更新或插入数据?
Customer mapper类是否也负责从CustomerParameters表中检索默认值,还是最好创建一个CustomerParameters mapper?
没有O/R映射工具。我使用的数据库是事务性的,需要我自己编写Mapper Pattern。
非常感谢您的想法和评论。