Nic*_*Nic 5 c# mapping automapper
对于我这个简单的问题,我很抱歉,但我无法让它发挥作用.我的问题:我想从域对象映射到模型对象但是,在域对象中我有一个列表,所以我的对象看起来像:
public class Conference
{
public virtual int Id{get;set;}
public virtual int NumberOfTables{get;set;}
public virtual IList<People> Peoples{get;set;}
}
public class People
{
public virtual int Id{get;set;}
public virtual string FirstName{get;set;}
public virtual string LastName{get;set;}
public virtual Conference Conference{get;set;}
}
My model :
public class Model
{
public int Id{get;set;}
public int NumberOfTables{get;set;}
public string Peoples{get;set;}
}
Run Code Online (Sandbox Code Playgroud)
我希望人们像:"FirstName"+"LastName"+","对于列表中的所有人现在从Domain Obj到Model的映射我有这样的事情:
Mapper.CreateMap<Conference,Model>()
.ForMember(c => c.Id, op => op.MapFrom(v => v.Id))
.ForMember(c => c.NumberOfTables, op => op.MapFrom(v => v.NumberOfTables))
.ForMember(c => c.Peoples, op => op//here I want to use ResolveUsing or something like this )
public class CustomConvert: ValueResolver<IList<GroupOfComponentInComplexToMeal>, string>
{
protected override string ResolveCore(IList<People> source)
{
string result = "";
if (source.Any())
{
for (int i = 0; i < source.Count; i++)
{
var name=source[i].FirstName+source[i].LastName;
result += name;
if (i < source.Count - 1)
{
result += ",";
}
}
}
return result;
}
}
Run Code Online (Sandbox Code Playgroud)
我做了这个CustomConvert,但我不能将它与我的mapper合并.
如果我需要使用自定义转换器,我现在真的不知道,但我想了解它们是如何工作的.任何帮助将不胜感激.
让它工作非常简单,但我仍然需要一些很好的例子来了解有关自定义解析器的更多信息.
解:
Mapper.CreateMap<Conference,Model>()
.ForMember(c => c.Id, op => op.MapFrom(v => v.Id))
.ForMember(c => c.NumberOfTables, op => op.MapFrom(v => v.NumberOfTables))
.ForMember(c =>
c.Peoples, op => op.ResolveUsing<CustomConvert>().FromMember(x => x.Peoples)
);
Run Code Online (Sandbox Code Playgroud)