C# 自动映射程序未从源填充目标
我有一个简单的测试解决方案,它由两个项目(一个“业务”层和一个数据访问层)组成,使用Catel将这两个项目联系在一起—工作正常,没有问题 然而,我一直在阅读AutoMapper如何通过允许轻松填充DTO来帮助在这样的设置中移动数据,并决定对其进行查看…这就是我的问题开始出现的原因 我正在使用Entity Framework 6.1,VS 2013 Express for Desktop并访问SQL Server Express 14 db-数据检索和数据在视图中的正确显示没有问题 AutoMapper是使用NuGet添加的 为了使用AutoMapper,我在App.xaml.cs中设置了以下内容C# 自动映射程序未从源填充目标,c#,automapper,C#,Automapper,我有一个简单的测试解决方案,它由两个项目(一个“业务”层和一个数据访问层)组成,使用Catel将这两个项目联系在一起—工作正常,没有问题 然而,我一直在阅读AutoMapper如何通过允许轻松填充DTO来帮助在这样的设置中移动数据,并决定对其进行查看…这就是我的问题开始出现的原因 我正在使用Entity Framework 6.1,VS 2013 Express for Desktop并访问SQL Server Express 14 db-数据检索和数据在视图中的正确显示没有问题 AutoMap
private void InitializeAutomapper()
{
Mapper.CreateMap<Result, ResultDto>();
Mapper.AssertConfigurationIsValid();
}
课程结果:
public class ResultDto
{
int Div { get; set; }
DateTime Date { get; set; }
string HomeTeam { get; set; }
string AwayTeam { get; set; }
int FTHG { get; set; }
int FTAG { get; set; }
string FTR { get; set; }
// Added tonight to try and get it to work
public ResultDto()
{
Div = 0;
Date = DateTime.Now;
HomeTeam = null;
AwayTeam = null;
FTHG = 0;
FTAG = 0;
FTR = null;
}
}
@stuartd,以下内容用于检索从中获取结果的ResultList:
// Produce a list of DataLayer.Result entities.
var ResultList = (from x in dbContext.Results.Local
where x.HomeTeam == team.TeamName.ToString() || x.AwayTeam == team.TeamName.ToString()
orderby x.Date
select x).ToList();
请注意,“team.Teamname”是从外部源传递到上面的,似乎工作正常
总而言之-
希望这有帮助!AutoMapper可以根据提供的参数计算出您映射的类型。请尝试以下操作:
ResultDto resultDTO = Mapper.Map<ResultDto>(res);
ResultDto ResultDto=Mapper.Map(res);
更新
这是错误的,或者至少没有帮助。我们需要查看注释中提到的源类和目标类。默认情况下,类成员声明为
private
,除非另有指定,否则ResultDto
属性在类外部不可见
public class ResultDto
{
int Div { get; set; }
....
}
需要
public class ResultDto
{
public int Div { get; set; }
....
}
你能显示
结果
和结果到
类吗?你是通过EF获得结果
的吗?如果源对象是EF代理,那么会有一些复杂的问题,一个解决方案是使用,你可以这样做,但这绝对不会有什么区别。是的。我不确定类型参数是从哪一个方向来的,我认为这是错误的可能是
-但我想我错了。呃-那根本就不可能编译。别理我。我有一个愚蠢的时刻!我是个十足的白痴!这一定是一个“欲速则不达”的经典例子-当然,你是对的。我当时急着去尝试这种很酷的新东西,我犯了一个noob错误……我真倒霉,三次倒霉!
public class ResultDto
{
int Div { get; set; }
....
}
public class ResultDto
{
public int Div { get; set; }
....
}