我有以下设置:
public class ClassA
{
public int Id { get; set; }
public int JoinId { get; set; }
}
public class ClassB
{
public string Name { get; set; }
public int JoinId { get; set; }
}
public class ClassC
{
public int Id { get; set; }
public string Name { get; set; }
public int JoinId { get; set; }
}
我有ClassA
列表和ClassB
我想要一个使用Automapper的ClassC
列表。结果应该是JoinId
上的完全外部加入。
我怎样才能做到这一点?
答案 0 :(得分:0)
为简单起见,我假设这些包含在另一个类中:
class Original
{
List<ClassA> ClassAs { get; set; }
List<ClassB> ClassBs { get; set; }
}
class Result
{
List<ClassC> ClassCs { get; set; }
}
您可以使用
将前者映射到后者Mapper.CreateMap<Original, Result>().ForMember(x => x.ClassCs,
x => x.MapFrom(x.ClassAs.Join(
y.ClassBs,
xEntry => xEntry.JoinId,
yEntry => yEntry.JoinId,
(xEntry, yEntry) => new ClassC {
Id = xEntry.Id,
Name = yEntry.Name,
JoinId = xEntry.JoinId});