EntitiesMapper 1.0.0

There is a newer version of this package available.
See the version list below for details.
dotnet add package EntitiesMapper --version 1.0.0
                    
NuGet\Install-Package EntitiesMapper -Version 1.0.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="EntitiesMapper" Version="1.0.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="EntitiesMapper" Version="1.0.0" />
                    
Directory.Packages.props
<PackageReference Include="EntitiesMapper" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add EntitiesMapper --version 1.0.0
                    
#r "nuget: EntitiesMapper, 1.0.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.
#:package EntitiesMapper@1.0.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=EntitiesMapper&version=1.0.0
                    
Install as a Cake Addin
#tool nuget:?package=EntitiesMapper&version=1.0.0
                    
Install as a Cake Tool

Usage/Examples

1 scenario: equals classes

public class PersonEntity
{
    public string Name { get; set; }
    public string Surname { get; set; }
    public int Age { get; set; }
    public int BirthdayYear { get; set; }
    public string Address { get; set; }
}

public class PersonDto
{
    public string Name { get; set; }
    public string Surname { get; set; }
    public int Age { get; set; }
    public int BirthdayYear { get; set; }
    public string Address { get; set; }
}

you can do this:

internal class Program
{
    static void Main(string[] args)
    {
        var entity = new PersonEntity() //source
        {
            Name = "John",
            Surname = "Doe",
            Age = 30,
            BirthdayYear = 1992,
            Address = "Via del Sole, 123"
        };
        var dto = new PersonDto(); //destination
        Mapper.CopyTo<PersonEntity, PersonDto>(entity, dto);
    }
}

2 scenario: classes has some different properties

public class PersonEntity
{
    public string Name { get; set; }
    public string Surname { get; set; }
    public int Age { get; set; }
    public string Rule { get; set; }
    public int BirthdayYear { get; set; }
    public string Address { get; set; }
}

public class PersonDto
{
    [MapTo(typeof(PersonEntity), "Name")]
    public string Nome { get; set; }
    [MapTo(typeof(PersonEntity), "Surname")]
    public string Cognome { get; set; }
    [MapTo(typeof(PersonEntity), "Age")]
    public int Eta { get; set; }
    [MapTo(typeof(PersonEntity), "BirthdayYear")]
    public int AnnoNascita { get; set; }
    [MapTo(typeof(PersonEntity), "Address")]
    public string ViaResidenza { get; set; }
}

you can add [MapToAttribute] on each destination property class like example and then do this:

internal class Program
{
    static void Main(string[] args)
    {
        var entity = new PersonEntity() //source
        {
            Name = "John",
            Surname = "Doe",
            Age = 30,
            BirthdayYear = 1992,
            Address = "Via del Sole, 123"
        };
        var dto = new PersonDto(); //destination
        Mapper.CopyTo<PersonEntity, PersonDto>(entity, dto);
    }
}

3 scenario: destination class can be mapped by multiple sources classes

public class PersonEntity
{
    public string Name { get; set; }
    public string Surname { get; set; }
    public int Age { get; set; }
    public string Rule { get; set; }
    public int BirthdayYear { get; set; }
    public string Address { get; set; }
}

public class PersonEntity2
{
    public string NomeNascita { get; set; }
    public string SurnameNascita { get; set; }
    public int EtaAttuale { get; set; }
}

internal class PersonDto
{
    [MapTo(typeof(PersonEntity), "Name")]
    [MapTo(typeof(PersonEntity2), "NomeNascita")]
    public string Nome { get; set; }
    [MapTo(typeof(PersonEntity), "Surname")]
    [MapTo(typeof(PersonEntity2), "SurnameNascita")]
    public string Cognome { get; set; }
    [MapTo(typeof(PersonEntity), "Age")]
    [MapTo(typeof(PersonEntity2), "EtaAttuale")]
    public int Eta { get; set; }
    [MapTo(typeof(PersonEntity), "BirthdayYear")]
    public int AnnoNascita { get; set; }
    [MapTo(typeof(PersonEntity), "Address")]
    public string ViaResidenza { get; set; }
}

you can add multiple [MapToAttribute] on each destination property class like example and then do this:

internal class Program
{
    static void Main(string[] args)
    {
        var entity = new PersonEntity() //source
        {
            Name = "John",
            Surname = "Doe",
            Age = 30,
            BirthdayYear = 1992,
            Address = "Via del Sole, 123"
        };
        var entity2 = new PersonEntity2()
        {
            NomeNascita = "John",
            SurnameNascita = "Doe",
            EtaAttuale = 30
        };

        var dto = new PersonDto(); //destination 1
        var dto2 = new PersonDto(); //destination 2

        Mapper.CopyTo<PersonEntity, PersonDto>(entity, dto);
        Mapper.CopyTo<PersonEntity2, PersonDto>(entity2, dto2);
    }
}
Product Compatible and additional computed target framework versions.
.NET net6.0 is compatible.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • net6.0

    • No dependencies.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
2.0.2 120 1/20/2025
2.0.1 109 1/19/2025
1.0.7 337 10/20/2023
1.0.6 145 10/19/2023
1.0.5 174 10/17/2023
1.0.2 229 6/8/2023
1.0.1 187 6/8/2023
1.0.0 199 6/7/2023