实现IMapper接口

时间:2013-09-19 18:47:22

标签: petapoco

我过去使用过PetaPoco,使用[Column("{column name")]属性来装饰我的对象,依此类推。但是,我正在尝试实现一个“纯”域模型,该模型不了解持久性,因此不了解PetaPoco的属性。

PetaPoco blog提到必须实现IMapper接口(“新映射器API”)才能将对象映射到其表而不修饰对象的类。但是,博客文章或源代码都没有真正解释IMapper的实现应该做什么。

如果我只是想将我的域实体映射到特定的表,主键和列名,我是否需要实现IMapper,我该怎么做?

1 个答案:

答案 0 :(得分:0)

还有更多有关映射器here的最新信息。基本上,您可以选择编写实现for( var i = 0; i< data.length;i++ ) { // code here ss.getRange(i + 1, 12).setValue(sent_string) // code here } 的类或创建IMapper的后代(已经实现ConventionMapper并提供更详细的自定义钩子)。您可以选择为每种类型编写一个映射器,或为每个程序集编写一个映射器。

IMapper已经很聪明,如果您遵循某些命名约定(因此命名),则可以从一种类型推断表和列的名称。有时,足以使后代只具有ConventionMapperInflectColumnName()的一些替代规则,并为整个程序集注册它。但是,如果您使用的字段名实际上看起来与表列名看起来不一样,那么IMO最好从零开始为每种类型实现InflectTableName()(或从IMapper继承) )并填写所有详细信息。