什么是AutoMapper的用途

时间:2017-01-08 07:37:37

标签: automapper dapper

我们可以使用其他类似于AutoMapper的工具吗?

2 个答案:

答案 0 :(得分:6)

Dapper是一个对象 - 关系 - 映射器,而AutoMapper是一个对象 - 对象映射器。不同之处在于,第一个将C#代码转换为SQL并将返回的数据集映射到对象,而AutoMapper仅将一个.NET对象类型映射到另一个。 Dapper允许您使用单一查询语言(C#)来查询不同的SQL数据库和方言。这样,如果您想在MySQL和SQL Server之间切换,它会使您的代码更具可移植性。您可以将Dapper视为IDbConnection之上的一组扩展方法,它允许您针对基础数据存储区而不是本机SQL编写C#LINQ查询。

这并不一定意味着AutoMapper应始终将数据库对象映射到域对象。例如,您可以使用AutoMapper在非常不同的对象类型之间进行转换。

答案 1 :(得分:0)

Dapper是一个微型ORM,与AutoMapper截然不同。 Dapper用于将数据库表/视图/查询结果映射到C#对象,比较属性名称和列名称。

另一方面,AutoMapper将Object映射到Object。这里的属性名称也可以用作映射条件。

使用完全取决于上下文,正如@Darin_Dimitrov解释的那样,Automapper可用于将数据库映射到对象,这个link解释了对象到对象的映射。 Dapper特定于dababase to Object,不能用作Object to Object映射。

也许您可以稍微更新一下这个问题来解释您使用的背景,以便人们可以提供更好的帮助。