C# 如何将一个列表自动映射到另一个列表
在我的c#wpf dekstop应用程序中使用automapper 我有以下两种型号:C# 如何将一个列表自动映射到另一个列表,c#,wpf,automapper,C#,Wpf,Automapper,在我的c#wpf dekstop应用程序中使用automapper 我有以下两种型号: public class A { public string Field1 {get; set;} public string Field2 {get; set;} } public class B { public string Field1 {get; set;} public string Field2 {get; set;} } 我通过db查询填充来创建类a的集合,
public class A
{
public string Field1 {get; set;}
public string Field2 {get; set;}
}
public class B
{
public string Field1 {get; set;}
public string Field2 {get; set;}
}
我通过db查询填充来创建类a的集合,以便:
list<A> collectionA = DB.GetQueryResults();
已弃用函数的列表快照:正在使用系统;
using System;
using AutoMapper;
public class Foo
{
public string A { get; set; }
public int B { get; set; }
}
public class Bar
{
public string A { get; set; }
public int B { get; set; }
}
public class Program
{
public static void Main()
{
Mapper.CreateMap<Foo,Bar>();
var foo = new Foo { A="test", B=100500 };
var bar = Mapper.Map<Bar>(foo);
Console.WriteLine("foo type is {0}", foo.GetType());
Console.WriteLine("bar type is {0}", bar.GetType());
Console.WriteLine("foo.A={0} foo.B={1}", foo.A, foo.B);
Console.WriteLine("bar.A={0} bar.B={1}", bar.A, bar.B);
}
}
使用自动制版机;
公开课Foo
{
公共字符串A{get;set;}
公共int B{get;set;}
}
公共类酒吧
{
公共字符串A{get;set;}
公共int B{get;set;}
}
公共课程
{
公共静态void Main()
{
CreateMap();
var foo=newfoo{A=“test”,B=100500};
var bar=Mapper.Map(foo);
WriteLine(“foo类型为{0}”,foo.GetType());
WriteLine(“bar类型为{0}”,bar.GetType());
WriteLine(“foo.A={0}foo.B={1}”,foo.A,foo.B);
WriteLine(“bar.A={0}bar.B={1}”,bar.A,bar.B);
}
}
这里是链接到
关于@Romi Petrelis使用系统的去润滑警告检查答案;
使用自动制版机;
公开课Foo
{
公共字符串A{get;set;}
公共int B{get;set;}
}
公共类酒吧
{
公共字符串A{get;set;}
公共int B{get;set;}
}
公共课程
{
公共静态void Main()
{
CreateMap();
var foo=newfoo{A=“test”,B=100500};
var bar=Mapper.Map(foo);
WriteLine(“foo类型为{0}”,foo.GetType());
WriteLine(“bar类型为{0}”,bar.GetType());
WriteLine(“foo.A={0}foo.B={1}”,foo.A,foo.B);
WriteLine(“bar.A={0}bar.B={1}”,bar.A,bar.B);
}
}
这里是链接到
关于@Romi Petrelis的去擦痕警告检查答案您已从a->B设置映射,但您尝试执行的映射是针对As->Bs列表的映射 为列表设置一个映射,这应该可以做到
var configJobProfile = new MapperConfiguration(cfg => cfg.CreateMap<List<A>, List<B>>());
var mapperJobProfile = configJobProfile.CreateMapper();
List<B> collectionB = mapperJobProfile.Map<List<B>>(collectionA);
var configJobProfile=new-MapperConfiguration(cfg=>cfg.CreateMap());
var mapperJobProfile=configJobProfile.CreateMapper();
List collectionB=mapperJobProfile.Map(collectionA);
您已经从a->B设置了映射,但是您尝试执行的映射是针对As->B列表的映射
为列表设置一个映射,这应该可以做到
var configJobProfile = new MapperConfiguration(cfg => cfg.CreateMap<List<A>, List<B>>());
var mapperJobProfile = configJobProfile.CreateMapper();
List<B> collectionB = mapperJobProfile.Map<List<B>>(collectionA);
var configJobProfile=new-MapperConfiguration(cfg=>cfg.CreateMap());
var mapperJobProfile=configJobProfile.CreateMapper();
List collectionB=mapperJobProfile.Map(collectionA);
映射错误是什么?请参阅内部异常。映射错误是什么?请参阅内部异常。@AndrewSimpson关于此已弃用代码的信息在哪里?您好,如果我将该代码放入VS2015,我将得到一个弃用警告。我马上上传截图。嗨,刚刚上传。您需要在另一个选项卡中打开才能看到它better@mybirthname有趣。试一试:)@AndrewSimpson关于这个不推荐使用的代码的信息在哪里?嗨,如果我把代码放到VS2015中,我会得到一个不推荐使用的警告。我马上上传截图。嗨,刚刚上传。您需要在另一个选项卡中打开才能看到它better@mybirthname有趣。我将试一试:)谢谢,我以前做过(我想我做过!)它产生了一个错误。这次没有错误,但没有记录,即使我知道有1条记录。将继续调查-谢谢Hanks,我以前做过(我想我做过!)但它产生了一个错误。这次没有错误,但没有记录,即使我知道有1条记录。将继续调查-谢谢