问题标签 [automapper-2]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - 使用 AutoMapper 将对象的属性映射到字符串
我有以下模型:
我希望能够使用 AutoMapper 将类型的Name
属性映射Tag
到我的一个视图模型中的字符串属性。
我创建了一个自定义解析器来尝试处理此映射,使用以下代码:
我正在使用以下代码进行映射:
当我运行应用程序时,我收到错误:
成员的自定义配置仅支持类型上的顶级个人成员。
我究竟做错了什么?
c# - Automapper 模型 > ViewModel 映射异常
我有以下模型和视图模型(为简洁而编辑):
我有以下 AutoMapper 映射:
然后我的控制器方法之一执行以下操作,以检索 Adverts 列表(其中每个 Advert 可能具有任意数量的 AdvertImages):
然后我尝试将这些广告映射到我的ListAdvertViewModel
ViewModel 类中
如果返回的广告之一(在“广告”变量中)有一些要映射的图像,这就会失败。我得到的错误是:
我不明白为什么这个 AdvertImage 映射会导致问题?
asp.net-mvc - Automapper with NHibernate - 如何持久化映射对象?
我有一个使用 Fluent NHibernate 和 AutoMapper 的 ASP.NET MVC 应用程序。我主要使用 AutoMapper 将我的模型映射到 ViewModel,反之亦然。
在执行后者时,从我的视图模型映射回模型,我想知道如何将其映射到数据库中的特定实例,所以当我将更改提交回数据库时(使用我的 NHibernate 存储库层,通过我的服务层),更改将保持不变。
例子:
如果我尝试提交我的 NHibernate 会话,以便在数据库中更新这个广告,尽管广告被分配了正确的 Key/Id 作为映射的一部分,我猜是因为 NHibernate 会话对这个广告实例一无所知(?)它不会写掉更改。
因此,我想知道如何与 NHibernate 一起处理这种映射场景?
c# - 使用键将列表映射到 Automapper 中的现有列表
Automapper 可以轻松处理将一个对象类型列表映射到另一个不同对象类型列表,但是是否可以使用 ID 作为键将其映射到现有列表?
c# - 使用 Automapper 导致堆栈溢出的循环引用
我正在使用 Automapper 将我的 NHibernate 代理对象 (DTO) 映射到我的 CSLA 业务对象
我正在使用 Fluent NHibernate 创建映射 - 这工作正常
我遇到的问题是Order
有一个集合,OrderLines
其中每个都有对Order
.
和:
这些 DTO 对象分别映射到Order
CSLAOrderLines
对象
当自动映射到OrderLines
列表时OrderLinesDTO
被映射。然后自动映射器将"Order"
属性映射到行上,这些行映射回Order
然后循环映射回OrderLine
,然后再映射到Order
等等
有谁知道 Automapper 是否可以避免这种循环引用?
c# - AutoMapper - 嵌套映射,同时保留选定的子属性
所以我有这个;
然后我这样做;
然后我的期望是它dest.ChildProperty.OtherChildProperty
仍然设置为从数据上下文中提取时的状态。但是我正在努力做到这一点。
如果我CreateMap
是这样,那么我会得到一个“必须解决到顶级成员”的异常;
但是,如果我执行以下操作,则new Child {}
替换Child
从数据上下文中提取的内容基本上是清除OtherChildProperty
;
我如何映射它并保留我希望忽略的子属性?
c# - 如果不是 Null,则 AutoMapper 映射嵌套对象的属性
我有以下示例对象..
使用以下 AutoMapper 配置
以及以下 NUnit 测试...
上面的测试在断言年龄时失败,因为 AutoMapper 正在将 null 推送到目标对象。
我是否对 AutoMapper 期望过高,或者我错过了一些重要的地图配置步骤。
最终目标是通过 MVC 操作将一个非常复杂的域对象绑定到传入的表单数据。然后,AutoMapper 将用于仅将非空属性(在对象图的所有深度)合并到整个多步骤表单中维护的真实实例中。
以防万一有人需要知道...我还尝试了以下映射配置,但没有任何运气:(
ninject - Ninject 和 AutoMapper
我正在为一个内部演示拼凑一些代码,该演示由基于 Caliburn.Micro 构建的 Silverlight 5.0 UI 组成。
摘要场景: 我试图让 AutoMapper 映射来自服务代理类的视图模型列表。视图模型具有 ctor 依赖关系,所以我想使用 Ninject 来解决这个问题。
详细信息: 我有一个调用服务的父视图模型 (AvailableItemsViewModel)。然后,它使用 AutoMapper 将返回的 DTO 列表映射到 AvailableItemViewModel。
AvailableItemViewModel 引用了 Caliburn 的 IEventAggregator - 因为视图模型将根据用户输入发布事件。
我读了:
如何配置 Automapper 以注入 Ninject 2.0?
所有这些看起来都非常相似......所以我在我的 Bootstrap 类中得到了以下内容:
如果我在引导程序中设置断点,我会看到 Ninject 可以成功创建 AvailableItemViewModel 的实例。
错误是:
{System.ArgumentException:类型“Caliburn.Proto.ViewModels.AvailableItemViewModel”在 AutoMapper.DelegateFactory 的 System.Linq.Expressions.Expression.New(Type type) 处没有默认构造函数。<>c__DisplayClass1.b__0(Type t) at TvdP.Collections.ConcurrentDictionary2.GetOrAdd(TKey key, Func
2 valueFactory) 在 AutoMapper.DelegateFactory.CreateCtor(Type type) 在 AutoMapper.Mappers.ObjectCreator.CreateObject(Type type) 在 AutoMapper.MappingEngine.AutoMapper.IMappingEngineRunner.CreateObject(ResolutionContext context) 在 AutoMapper.Mappers.TypeMapObjectMapperRegistry.NewObjectPropertyMappingStrategy.GetMappedObject( ResolutionContext context, IMappingEngineRunner mapper) at AutoMapper.Mappers.TypeMapObjectMapperRegistry.PropertyMappingStrategy.Map(ResolutionContext context, IMappingEngineRunner mapper) at AutoMapper.Mappers.TypeMapper.Map(ResolutionContext context, IMappingEngineRunner mapper) at AutoMapper.MappingEngine.AutoMapper.IMappingEngineRunner.Map(ResolutionContext语境)}
所以 Ninject 没有被使用?
进行映射的代码是:
我错过了什么?
(AutoMapper 是 2.1.267.0,Ninject 是 3.0.0.0。我也在使用 Ninject.Conventions)
[更新] 我注意到AutoMapper with Ninject帖子中的“解决方法”也适用于我。
[更新] 鉴于此: Mapper.CreateMap().ConstructUsingServiceLocator();
如果我删除 ConstructUsingServiceLocator() 方法,那么 Kernel.Get 上的断点:
不触发。所以看起来两者都是必需的?
automapper - Automapper 表达式必须解析为顶级成员
我正在使用自动映射器来映射源对象和目标对象。当我映射它们时,我得到以下错误。
表达式必须解析为顶级成员。参数名称:lambdaExpression
我无法解决问题。
我的源和目标对象是:
我必须Source.Cars
用Destination.OutputData.Cars
对象映射。你能帮我解决这个问题吗?
.net - 目标上的未映射字段设置为空
我正在使用 Automapper 来映射两个对象。
我在目的地有字段 VehicleModel 有一些默认值。我在源中没有此目标字段的映射。所以我没有映射它。映射完成后,我的默认值在目的地设置为空值。数据对象如下所示。
Source 和 OutputData 之间的映射。
如何避免这种行为。
提前致谢。桑迪普