AutoMapper是一个流行的库,它可以定义映射规则,比如Mapper.Map<MyEntity>(entity); 将Entity对象自动映射为DTO。使用实例
时间: 2025-01-01 20:40:17 浏览: 6
AutoMapper是一个强大的.NET库,它简化了对象之间的复杂映射,特别是当实体类(Entity)和数据传输对象(DTO)之间有明显的结构差异时。使用它的一个典型例子是:
```csharp
// 定义一个Entity类
public class UserEntity
{
public int Id { get; set; }
public string Name { get; set; }
}
// 定义一个对应的DTO类
public class UserDataDto
{
public int UserId { get; set; }
public string UserName { get; set; }
}
// 创建AutoMapper配置
var config = new MapperConfiguration(cfg => cfg.CreateMap<UserEntity, UserDataDto>());
// 使用Mapper.Map创建映射实例
using (var mapper = config.CreateMapper())
{
// 将UserEntity映射为UserDataDto
var userData = mapper.Map<UserDataDto>(new UserEntity() { Id = 1, Name = "John" });
Console.WriteLine(userData.UserName); // 输出 "John"
}
```
在这个例子中,即使`UserEntity`和`UserDataDto`的属性名称不同,`Mapper.Map`会根据配置自动处理这种转换。如果你需要自定义映射规则,可以在配置阶段添加`cfg.MapFrom(src => src.Name)`这样的规则。
阅读全文