Many to Many EF

LINQ and AutoMap

[Bin] 1 ---- * [LocationBin] * ---- 1 [Location]
public async Task<IEnumerable<Bin>> GetAllBinsAsync()
{
    return await _context.Set<Bin>()
        .Include(c => c.LocationBins)
        .ThenInclude(a => a.Location)
        .Where(l => l.LocationBins.Count() > 0)
        .ToListAsync();
}

public async Task<IEnumerable<Bin>> GetAllBinsByLocationIdAsync(int locationId)
{
    return await _context.Set<Bin>()
        .Include(c => c.LocationBins)
        .ThenInclude(a => a.Location)
        .Where(l => l.LocationBins.Any(b => b.LocationId == locationId))
        .ToListAsync();
}


CreateMap<Bin, BinViewModel>()
 .ForMember(dest => dest.Location, opt => opt.MapFrom(src => src.LocationBins.Select(a=>a.Location).FirstOrDefault().Name));

Last updated

Was this helpful?