对象/数据库映射属于哪里?

时间:2011-08-08 20:46:39

标签: c# database mapping data-access-layer dto

我目前正在开发一个使用轻量级DataAccessLayer的项目。该项目由一个businesslayer,一个dataacesslayer和一个持有DTO的项目组成。此设置已修复,我无法更改。我也不能使用完整的ORM,如Nhibernate或Entity Framework。

好的,为了正确使用这个设置,我们需要以某种方式将DTO的属性映射到数据库的字段。目前我们在dataaccesslayer中执行此操作(每个实体/ DTO“拥有”一个dataaccesslayer类)。 这种情况发生在两种方法MapTo和MapFrom中:第一种方法将对象的字段映射到表的字段,另一种方法则相反。

现在我想知道dataaccesslayer是否是定义此映射的正确位置。在DTO中定义映射不是更好。例如有属性? 或者更好的是一个更通用的方法,而不是每个类的方法,基本上只是将属性映射到表字段。

1 个答案:

答案 0 :(得分:0)

你的意思是DTO的域名模型,对吗?通常,实体和表之间的映射属于数据访问层。但我不会把映射放到域模型项目中。在这种情况下,例如,当您的数据库表发生更改时,您必须更改/编译域模型以及DAL。在其他示例中,如果您在DAL中具有映射,则在切换数据库或ORM方法时,只需更改DAL即可实现此目的。