gpt4 book ai didi

c# - Automapper 自定义解析器

转载 作者:太空狗 更新时间:2023-10-29 22:37:26 24 4
gpt4 key购买 nike

对于我的简单问题,我深表歉意,但我无法让它发挥作用。我的问题:我想从域对象映射到模型对象,但是,在域对象中,我有一个列表,所以我的对象看起来像:

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;}
}

我希望 People 像 :"FirstName"+"LastName"+","对于列表中的所有人现在从领域对象到模型的映射我有这样的事情:

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;
}
}

我做了这个 CustomConvert,但我无法将它与我的映射器合并。

我现在真的不知道是否需要使用自定义转换器,但我想了解它们的工作原理。任何帮助将不胜感激。

最佳答案

让它工作真的很简单,但我仍然需要一些很好的例子来了解更多关于自定义解析器的信息。

解决方案:

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)
);

关于c# - Automapper 自定义解析器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22019041/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com