AutoMapper 和“UseDestinationValue”

2023-11-21

UseDestinationValue 有何作用?

我这样问是因为我有一个基类和继承类,对于基类,我希望 AutoMapper 为我获取现有值。

它会这样做吗? (我已经看过了,我能看到的唯一例子UseDestinationValue涉及列表。只适用于列表吗?

我可以这样做吗:

PersonContract personContract = new PersonContract {Name = 'Dan'};
Person person = new Person {Name = "Bob"};
Mapper.CreateMap<PersonContract, Person>()
      .ForMember(x=>x.Name, opt=>opt.UseDestinationValue());

person = Mapper.Map<PersonContract, Person>(personContract);

Console.WriteLine(person.Name);

输出是 bob 吗?


我写下了整个问题然后想,DUH!运行一下看看。

它如我所希望的那样工作。

这是我最终得到的代码:

class Program
{
    static void Main(string[] args)
    {
        PersonContract personContract = new PersonContract {NickName = "Dan"};
        Person person = new Person {Name = "Robert", NickName = "Bob"};
        Mapper.CreateMap<PersonContract, Person>()
            .ForMember(x => x.Name, opt =>
                                        {
                                            opt.UseDestinationValue();
                                            opt.Ignore();
                                        });

        Mapper.AssertConfigurationIsValid();

        var personOut = 
            Mapper.Map<PersonContract, Person>(personContract, person);

        Console.WriteLine(person.Name);
        Console.WriteLine(person.NickName);

        Console.WriteLine(personOut.Name);
        Console.WriteLine(personOut.NickName);
        Console.ReadLine();
    }
}

internal class Person
{
    public string Name { get; set; }
    public string NickName { get; set; }
}

internal class PersonContract
{
    public string NickName { get; set; }
}

输出是:

Robert
Dan
罗伯特
Dan

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

AutoMapper 和“UseDestinationValue” 的相关文章

  • Automapper - 忽略有条件的映射

    我正在使用自动映射器 我想知道当字段为空时是否可以忽略字段的映射 这是我的代码 ForMember dest gt dest BusinessGroup Id opt gt opt MapFrom src gt int src Busine
  • AutoMapper 4.2 和 Ninject 3.2

    我正在更新我的一个项目以使用 AutoMapper 4 2 并且遇到了重大更改 当我seem为了解决上述更改 我并不完全相信我已经以最合适的方式做到了这一点 在旧代码中 我有一个NinjectConfiguration 和AutoMappe
  • 我应该如何为 Unity 和 AutoMapper 实现 MVC Bootstrapper?

    为我的 MVC 2 应用程序创建引导程序的最佳方法是什么 我正在使用 Unity 和 AutoMapper 并希望尽可能抽象它们的加载和配置 一个不错的例子在这里 http weblogs asp net rashid archive 20
  • Automapper 3.0 - 此平台不支持此类型 IMapperRegistry

    我更新了我的项目以使用自动映射器3 0 0现在我的 TFS 构建没有成功 错误如下 System PlatformNotSupportedException System PlatformNotSupportedException 此平台
  • Automapper:手动映射属性

    我刚刚开始使用 automapper 来映射 DTO实体 它似乎工作得很好 在某些特殊情况下 我只想映射某些属性并执行额外的检查 如果没有自动映射器 代码如下所示 使用fasterflect的PropertyExtensions objec
  • 自动映射器映射对象

    此附加要求基于此问题一个来源到多个目的地 https stackoverflow com questions 63643577 automapper one source to multiple destination class Dest
  • Automapper 地图自定义集合

    Hello 我有一个看起来像这样的列表 public class PagedList
  • AutoMapper,如何保持映射对象之间的引用?

    我使用 AutoMapper 将 UI 模型转换为 POCO 然后使用 DataContractSerializer 将其序列化为 XML 以便保留它们之间的引用 问题来了 在绘制地图时 这些实体之间的引用丢失 UI 类相互引用 但映射过程
  • 自动映射器合并对象问题

    让自动映射器工作后 上一个问题 https stackoverflow com questions 36602430 automapper complex types mapping exception 我正在解决另一个问题 把它带到另一个
  • automapper映射动态对象

    我正在使用 Automapper 并需要实现以下映射 但不确定如何完成 我想将 Dictionary 对象映射到动态对象 以便键是对象上的属性 字典的值是动态对象中属性的值 这可以通过自动映射器实现吗 如果可以 如何实现 你可以简单地得到D
  • Automapper - 字典到对象映射不起作用?

    我正在尝试将字典转换为对象 我已经尝试过以下方法 但它不起作用 public class FormField public string FieldName get set public string FieldValue get set
  • Automapper:检查 MapFrom 中的 null

    使用版本 4 制作地图时如何检查 null 我尝试过 Value 但那不存在于Null Mapper CreateMap
  • 在 ASP.NET Identity 2 中通过 UserManager.Update() 更新用户

    I use ASP NET Identity 2 in an MVC 5项目 我想更新Student数据通过使用UserManager Update 方法 然而 正如我继承自ApplicationUser类 我需要映射Student to
  • Automapper、MapFrom 和 EF 动态代理

    我一直在尝试将域对象映射到报表视图模型 在测试中一切都很顺利 我伪造了实体框架代码并使用构建器返回完全填充的 pocco 对象 现在我实际上正在访问数据库并返回数据 我看到一些奇怪的动态代理类型错误 这是我的代码示例 public clas
  • 实体框架、AutoMapper、处理实体更新

    我最近才开始使用Entity Framework 1 0 相信我已经开始感受到大家都在谈论的痛苦了 我正在尝试使用最佳实践 因此我有一组 DTO 可以通过 AutoMapper 映射到我的实体或从我的实体映射 真正的问题是当我尝试更新对象时
  • 自动映射器 UseDestinationValue

    映射时遇到问题 VPerson vPerson new VPerson Id 2 Lastname Hansen1 Name Morten1 DPerson dPerson new DPerson Id 1 Lastname Hansen
  • AutoMapper ForMember 忽略不起作用

    在 MVC 应用程序中复制相同实体类型 但希望忽略复制主键 对现有实体进行更新 但是在下面的地图中将 Id 列设置为忽略不起作用 并且 Id 被覆盖 cfg CreateMap
  • Automapper - CreateMap 被多次调用

    当我多次调用相同类型的 Mapper CreateMap 时会发生什么 它会重写之前的地图吗 如果是这样 如果我尝试创建已经创建的地图 是否可以使其抛出异常 当多次为同一组源和目标调用 Mapper CreateMap 时 根本不会发生任何
  • 将 AutoMapper 从 3 更新为 4,破坏了继承映射

    我将 AutoMapper 从 3 3 1 更新到 4 0 4 这破坏了以下映射并显示此消息 无法将 Foo 类型的对象转换为 BarDTO 类型 Classes public class FooDTO omitted derived DT
  • 自动映射器 UseDestinationValue 不起作用

    目前正在努力解决同一类之间自动映射器的设置 问题是我需要在调用之前使用 NHibernate 从数据库获取实体SaveOrUpdate 然后我将替换所有属性 除了Id and LocationId Mapper public Domain

随机推荐