实现IMapper界面

问题描述 投票:5回答:1

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

PetaPoco blog提到必须存在一个IMapper接口(“ New Mapper API”),以便将对象映射到其表而不修饰对象的类。但是,博客文章或源代码均未真正说明IMapper的实现应执行的操作。

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

petapoco
1个回答
0
投票

[有关映射器here的最新信息。基本上,您可以选择编写实现IMapper的类或创建ConventionMapper的后代(已经实现IMapper并提供更详细的自定义挂钩)。您可以选择为每种类型编写一个映射程序,或为每个程序集编写一个映射程序。

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

© www.soinside.com 2019 - 2024. All rights reserved.