DevTeam.QueryMappings 3.3.0

.NET Standard 2.1
dotnet add package DevTeam.QueryMappings --version 3.3.0
NuGet\Install-Package DevTeam.QueryMappings -Version 3.3.0
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="DevTeam.QueryMappings" Version="3.3.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add DevTeam.QueryMappings --version 3.3.0
#r "nuget: DevTeam.QueryMappings, 3.3.0"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install DevTeam.QueryMappings as a Cake Addin
#addin nuget:?package=DevTeam.QueryMappings&version=3.3.0

// Install DevTeam.QueryMappings as a Cake Tool
#tool nuget:?package=DevTeam.QueryMappings&version=3.3.0


Query mappings provide simple strongly typed interface optimized for Entity Framework and IQueryable.

TeamCity Build Status NuGet


As we use Entity Framework and IQueryable interface for a tons of different projects, we needed some naturally adaptable mapping interface to IQueryable interface. This interface should support possibility to pass arguments for more complicated mapping cases. Also there are cases when we can't have Navigation Property between objects or when we want to write LINQ syntax for queries, so we needed possibility to inject EF Context inside of the mapping.


  1. Simple and strongly typed mapping interface. Mappings API should be natural - we just map one object to another, we don't need 10 different methods just to do it:

    _mappingsList.Add<Address, AddressModel>(x => new AddressModel
        Id = x.Id,
        BuildingNumber = x.BuildingNumber,
        City = x.City,
        State = x.State,
        Country = (Countries)x.Country,
        Street = x.Street,
        ZipCode = x.ZipCode

  1. Oriented on Entity Framework. Best support of IQueryable and even injection of Entity Framework context inside of the mapping expression.

_mappingsList.Add<Building, BuildingStatisticsModel, BuildingArguments, IDbContext>(args =>
    return (query, context) => 
        from building in query
        join review in context.Set<Review>() on new { EntityId = building.Id, EntityTypeId = (int)EntityType.Building }
                                             equals new { EntityId = review.EntityId, EntityTypeId = review.EntityTypeId }
                                             into reviews
        let address = building.Address
        select new BuildingStatisticsModel
            Id = building.Id,
            Address = address.BuildingNumber + ", " + address.Street + ", " + address.City,
            AppartmentsCount = building.Appartments.Count(),
            Size = building.Appartments.Sum(app => app.Size),
            ResidentsCount = building.Appartments.SelectMany(app => app.Residents).Where(r => r.Age > args.TargetResidentsAge).Count(),
            AverageBuildingRating = reviews.Average(r => r.Rating)

  1. Possibility to pass and use arguments inside of the mapping

_mappingsList.Add<Appartment, AppartmentModel, AppartmentsArguments>(args =>
    return x => new AppartmentModel
        Id = x.Id,
        Badrooms = x.Badrooms,
        Bathrooms = x.Bathrooms,
        Floor = x.Floor,
        IsLodge = x.IsLodge,
        Number = x.Number,
        Size = x.Size.ToString() + args.UnitOfMeasure

  1. Strobgly typed interface. If types of your models have changed you will see compile-time errors.

  2. No any reflection is used in runtime. Only one place when reflection is used - start of application.


You can find documentation in the wiki to this repository.


If you found any bug, please submit bug in our [issue tracker] ( If you can submit [pull request] with fix ( - even better! And we will be happy to hear different suggestions to improve this project.


Main features in the near future is reusable mappings and object-to-object mappings. You can find roadmap to the project here.

How to start

Please reference to quick start in our wiki.

Product Versions
.NET net5.0 net5.0-windows net6.0 net6.0-android net6.0-ios net6.0-maccatalyst net6.0-macos net6.0-tvos net6.0-windows net7.0 net7.0-android net7.0-ios net7.0-maccatalyst net7.0-macos net7.0-tvos net7.0-windows
.NET Core netcoreapp3.0 netcoreapp3.1
.NET Standard netstandard2.1
MonoAndroid monoandroid
MonoMac monomac
MonoTouch monotouch
Tizen tizen60
Xamarin.iOS xamarinios
Xamarin.Mac xamarinmac
Xamarin.TVOS xamarintvos
Xamarin.WatchOS xamarinwatchos
Compatible target framework(s)
Additional computed target framework(s)
Learn more about Target Frameworks and .NET Standard.
  • .NETStandard 2.1

    • No dependencies.

NuGet packages (2)

Showing the top 2 NuGet packages that depend on DevTeam.QueryMappings:

Package Downloads

Package provides integration between Generic Repository and Query Mappings for Entity Framework


The package helps to integrate DevTeam.QueryMappings into ASP.NET Core project.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
3.3.0 2,083 9/6/2021
3.2.0 277 9/6/2021
3.1.0 324 9/6/2021
3.0.0 569 9/4/2021
2.1.0 1,032 1/3/2020
2.0.1 901 4/16/2018
2.0.0 937 4/15/2018
2.0.0-rc 723 4/14/2018
1.0.4 946 12/2/2016
1.0.3 1,148 7/5/2016
1.0.2 1,132 7/5/2016
1.0.0 2,102 5/22/2016