标签: automapper

找到了自动映射器未映射的成员

我们正在使用Automapper进行项目,并且似乎随机获得以下错误:

AutoMapper.AutoMapperConfigurationException:找到未映射的成员.查看下面的类型和成员.添加自定义映射表达式,忽略,添加自定义解析程序或修改源/目标类型

代码在几个月内没有改变.我收到错误,刷新,错误消失,页面工作正常.我正在使用

Mapper.AssertConfigurationIsValid();
Run Code Online (Sandbox Code Playgroud)

不知道为什么它抱怨映射不好然后刷新再次没问题,有没有人碰到这个?调试没有帮助,因为它是随机的,有时没有错误,然后其他日子它将在网站的某个地方弹出,回到它并且没关系.错误也出现在随机页面上,而不是相同的页面,而不是相同的映射.

c# asp.net automapper

53
推荐指数
2
解决办法
6万
查看次数

AutoMapper Map子属性,也定义了地图

我有以下域对象:

public class DomainClass
{
    public int Id { get; set; }

    public string A { get; set; }
    public string B { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我有以下两个要映射到的对象:

public class Parent 
{
    public int Id { get; set; }
    public string A { get; set; }

    public Child Child { get; set; }
}

public class Child 
{
    public int Id { get; set; }
    public string B { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我设置了以下地图:

 Mapper.CreateMap<DomainClass, Parent>();
 Mapper.CreateMap<DomainClass, Child>();
Run Code Online (Sandbox Code Playgroud)

如果我使用以下调用映射我的对象,则parent.Child属性为null.

var …
Run Code Online (Sandbox Code Playgroud)

c# automapper

52
推荐指数
3
解决办法
5万
查看次数

自动映射 - 是否映射对象列表?

我有以下Automapper定义:

Mapper.CreateMap<IB.BusinessComponents.Data.LocationMaster, IB.Entites.Master.Location>();
Mapper.CreateMap<IB.BusinessComponents.Data.LocationMaster, IB.Entites.Master.Location>()
    .ForMember(destination => destination.Id, source => source.MapFrom(item => item.LocationMasterID))
    .ForMember(destination => destination.ChildLocationList, source => source.Ignore());
Run Code Online (Sandbox Code Playgroud)

当我映射单个对象时,这很好用.但我似乎无法传递对象列表.传入列表时是否需要不同的定义,或者不可能?

automapper

51
推荐指数
1
解决办法
4万
查看次数

AutoMapper:MapFrom和ResolveUsing有什么区别?

忽略ResolveUsing采用IValueResolver 的重载,并仅查看这两种方法:

void ResolveUsing(Func<TSource, object> resolver);
void MapFrom<TMember>(Expression<Func<TSource, TMember>> sourceMember);
Run Code Online (Sandbox Code Playgroud)

这两者之间的主要区别似乎是ResolveUsinga Func<TSource, object>,而MapFrom需要a Expression<Func<TSource, TMember>>.

但是,在实际上使用lambda表达式的这些方法之一的客户端代码中,它们似乎是可互换的:

Mapper.CreateMap<SourceType, DestType>() // uses ResolveUsing
   .ForMember(d => d.DestPropX, o => o.ResolveUsing(s => s.SourcePropY));

Mapper.CreateMap<SourceType, DestType>() // uses MapFrom
   .ForMember(d => d.DestPropX, o => o.MapFrom(s => s.SourcePropY));
Run Code Online (Sandbox Code Playgroud)

那么上述两种选择之间最终的区别是什么呢?一个比另一个快吗?一个是比另一个更好的选择,如果是,何时/为什么?

automapper automapper-2

51
推荐指数
3
解决办法
3万
查看次数

如何使用Automapper在两个枚举之间进行映射?

我有一个面向公众的界面,我试图将两个不同的枚举映射到彼此.我试着使用以下代码:

Mapper.CreateMap<Contract_1_1_0.ValidationResultType, Common.ValidationResultType>();
Run Code Online (Sandbox Code Playgroud)

当那不起作用时,我试过:

Mapper.CreateMap<Contract_1_1_0.ValidationResultType, Common.ValidationResultType>().ConvertUsing(x => (Common.ValidationResultType)((int)x));
Run Code Online (Sandbox Code Playgroud)

但这似乎也不起作用.反正有没有让automapper来处理这种情况?

c# automapper

49
推荐指数
7
解决办法
3万
查看次数

自动映射器无法映射IEnumerable

我有两个类,所以:

public class SentEmailAttachment : ISentEmailAttachment
{
    public SentEmailAttachment();

    public string FileName { get; set; }
    public string ID { get; set; }
    public string SentEmailID { get; set; }
    public string StorageService { get; set; }
    public string StorageServiceFileID { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

public class SentEmailAttachmentItem : ISentEmailAttachment
{
    [ItemName]
    public string ID { get; set; }
    public string SentEmailID { get; set; }
    public string FileName { get; set; }
    public string StorageService { get; set; …
Run Code Online (Sandbox Code Playgroud)

c# automapper

48
推荐指数
2
解决办法
3万
查看次数

47
推荐指数
2
解决办法
1万
查看次数

Automapper copy List to List

我有这些课程:

public class Person {
    public int Id{ get; set ;}
    public string FirstName{ get; set ;}
    public string LastName{ get; set ;}
}

public class PersonView {
    public int Id{ get; set ;}
    public string FirstName{ get; set ;}
    public string LastName{ get; set ;}
}
Run Code Online (Sandbox Code Playgroud)

我定义了这个:

Mapper.CreateMap<Person, PersonView>();
Mapper.CreateMap<PersonView, Person>()
    .ForMember(person => person.Id, opt => opt.Ignore());
Run Code Online (Sandbox Code Playgroud)

这是有用的:

PersonView personView = Mapper.Map<Person, PersonView>(new Person());
Run Code Online (Sandbox Code Playgroud)

我想做同样但List<Person> to List<PersonView>但是我没有找到正确的语法.

谢谢

c# automapper automapper-2

45
推荐指数
2
解决办法
6万
查看次数

替换 Automapper 的 ForAllOtherMembers()

ForAllOtherMembers 扩展方法已从 Automapper 11 中删除,我使用它来忽略除前面提到的属性之外的属性的常规映射,如下所示

ForAllOtherMembers(opt=>opt.ignore())
Run Code Online (Sandbox Code Playgroud)

如何在 Automapper 11 中执行此操作?

c# automapper

42
推荐指数
3
解决办法
1万
查看次数

允许使用AutoMapper或类似的映射动态类型?

我已经开始使用https://github.com/robconery/massive进行项目,我想知道是否有任何映射工具允许支持动态到静态类型映射?

我之前使用过AutoMapper,AutoMapper是否支持此功能?

我知道AutoMapper中的DynamicMap函数,但我相信这个函数用于运行地图而不先创建Map.在我下面的例子中,它不起作用.

dynamic curUser = users.GetSingleUser(UserID);   
var retUser = Mapper.DynamicMap<UserModel>(curUser);
users.GetSingleUser(UserID); // returns a dynamic object
Run Code Online (Sandbox Code Playgroud)

c# automapper massive

41
推荐指数
2
解决办法
3万
查看次数

标签 统计

automapper ×10

c# ×7

automapper-2 ×2

.net ×1

asp.net ×1

java ×1

mapping ×1

massive ×1