Browse Source

update cover

pull/23619/head
Ebicoglu 1 year ago
parent
commit
850e6e394d
  1. 45
      docs/en/Community-Articles/2025-08-25-AutoMapper-Alternatives/AutoMapper-Alternatives.md
  2. BIN
      docs/en/Community-Articles/2025-08-25-AutoMapper-Alternatives/cover.png

45
docs/en/Community-Articles/2025-08-25-AutoMapper-Alternatives/AutoMapper-Alternatives.md

@ -175,6 +175,51 @@ var list = dbContext.Orders
#### Mapperly (Free, Apache-2.0)
This is compile-time generated mapping.
```csharp
[Mapper] // generates the implementation at build time
public partial class OrderMapper
{
// Simple property mapping: Customer.Name -> CustomerName
[MapProperty(nameof(Order.Customer) + "." + nameof(Customer.Name), nameof(OrderDto.CustomerName))]
public partial OrderDto ToDto(Order s);
// Update an existing target (like MapToExisting)
[MapProperty(nameof(Order.Customer) + "." + nameof(Customer.Name), nameof(OrderDto.CustomerName))]
public partial void UpdateDto(Order s, OrderDto target);
// Post-process calculated fields (ItemCount, Total, CreatedAtIso)
[AfterMapping]
private static void After(Order s, ref OrderDto d)
{
d = d with
{
ItemCount = s.Lines.Sum(l => l.Quantity),
Total = s.Lines.Sum(l => l.Quantity * l.UnitPrice),
CreatedAtIso = s.CreatedAt.ToString("O")
};
}
}
//USAGE
var mapper = new OrderMapper();
var dto = mapper.ToDto(order);
var target = new OrderDto();
mapper.UpdateDto(order, target);
```
**NuGet Packages:**
* https://www.nuget.org/packages/Riok.Mapperly/
#### Mapster Example (Free, MIT)
```csharp

BIN
docs/en/Community-Articles/2025-08-25-AutoMapper-Alternatives/cover.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 477 KiB

Loading…
Cancel
Save