Skip to content

zhangjundsg/AutoMapperDto

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

29 Commits
 
 
 
 
 
 
 
 

Repository files navigation

AutoMapperDto

使用source generator自动生成实体dto

如何使用

使用Visual Studio 2022

1 在需要映射的实体class或record上标记Mapper<T> T为映射源对象

public class MyClass
{
    public string? Name { get; set; }
    public int Age { get; set; }
    public List<string> List { get; set; }
}

[Mapper<MyClass>]
public partial class MyClassDto;

2 在映射时排除某属性,在源对象属性上标记Ignore

public class MyClass
{
    public string? Name { get; set; }
    public int Age { get; set; }
    [Ignore]
    public List<string> List { get; set; }
}

3 在映射时指定别名,在源对象属性上标记MapperAs

public class MyClass
{
    public string? Name { get; set; }
    public int Age { get; set; }
    [MapperAs(nameof(MyClassDto.AsList))]
    public List<string> List { get; set; }
}

4 使用As{target}完成源对象转换为目标对象

public class MapperTest
{
    [Mapper<MyClass>]
    public partial class MyClassDto;

    [Fact]
    public void Mapper_Test()
    {
        MyClass myClass = new()
        {
            Name = "Test",
            Age = 12,
            address = "china",
            List = ["1", "2", "3"]
        };
        var dto = myClass.AsMyClassDto();

        Assert.Equal("Test", dto.Name);
        Assert.Equal(12, dto.Age);
        Assert.Equal(3, dto.AsList.Count);

    }
}

注意

实体需要用partial关键字修饰为分部类:

tips

About

使用source generator自动生成实体dto

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages