在数据库中进行更改后将.edmx entities属性映射到DTO

本文关键字:entities edmx 属性 映射 DTO 数据库 | 更新日期: 2023-09-27 18:13:40

我对AutoMapping的概念很陌生。我使用数据库优先的方法为我的应用程序,所以一个。edmx文件生成,我已经映射实体存在于我的。edmx文件与DTO的。

现在我的问题是每当我通过在模型浏览器中更新数据库来更改。edmx实体文件时,我必须手动更改DTO实体,

所以我怀疑我的映射是否有效。有没有什么方法可以让我在更新.edmx文件时不必手动进行这些更改和DTO的更改?还是因为我没有正确配置自动器?

这是我的自动映射器配置。

AutoMapperWebConfiguration.cs

class AutoMapperWebConfiguration 
{
    public static void Configure()
    {
        Mapper.Initialize(cfg =>
        {
            cfg.AddProfile(new UserProfile());
            cfg.AddProfile(new PostProfile());
        });
    }
}

UserProfile.cs

public class UserProfile : Profile
{
    protected override void Configure()
    { 
        Mapper.CreateMap<tabletest,tabletestDTO>();
    }
}

请让我知道在这个配置中添加什么,以便我可以在每次.edmx实体更新时自动更改我的DTO实体。

在数据库中进行更改后将.edmx entities属性映射到DTO

AutoMapper不能更新你的dto,它只是映射它。一个最简单的解决方法是使用Mapper.AssertConfigurationIsValid()方法在运行时验证您的配置:

AutoMapper检查以确保每个目的地类型成员在源类型上具有相应的类型成员。

另一个(更复杂的)选项是使用T4模板基于实体类生成dto。