-
Notifications
You must be signed in to change notification settings - Fork 1
EntityFramework
Arnel Robles edited this page Sep 28, 2026
·
1 revision
ProjectTo<T>() that translates to SQL, no in-memory loading.
using Mapsicle.EntityFramework;
var dtos = await _context.Users
.Where(u => u.IsActive)
.ProjectTo<UserEntity, UserDto>()
.ToListAsync();
// Flattening in SQL: Customer.Name into CustomerName
var orders = _context.Orders
.ProjectTo<OrderEntity, OrderFlatDto>()
.ToList();// ForMember expressions are translated to SQL!
var config = new MapperConfiguration(cfg =>
{
cfg.CreateMap<Order, OrderDto>()
.ForMember(d => d.CustomerName, opt => opt.MapFrom(s => s.Customer.FirstName + " " + s.Customer.LastName))
.ForMember(d => d.Total, opt => opt.MapFrom(s => s.Lines.Sum(l => l.Quantity * l.UnitPrice)));
});
// These expressions translate to SQL queries
var orders = _context.Orders.ProjectTo<Order, OrderDto>(config).ToList();Mapsicle
Packages
- Core
- Fluent
- EntityFramework
- Validation
- NamingConventions
- Serilog
- Dapper
- AspNetCore
- Json
- Caching
- Audit
- DataAnnotations
Reference