我有一个Linq to Sql源被映射到DTO.
src包含DTO中不存在的属性.即src.State存在但dest.State不存在.
这会导致映射配置抛出ConfigurationException.
我不想将属性添加到DTO(例如dest.State)以使其工作,而.ForMember()方法需要dest属性或字符串名称,我认为这与dest属性相关.
当dest属性不存在时,如何告诉automapper忽略()src属性?
有没有办法将属性添加到除以下内容之外的Linq查询结果的对象?
var query = from x in db.Courses
select new
{
x.OldProperty1,
x.OldProperty2,
x.OldProperty3,
NewProperty = true
};
Run Code Online (Sandbox Code Playgroud)
我想这样做而不列出我对象的所有当前属性.有许多属性,我不想在我改变课程时更新此代码.
我还在学习LINQ,感谢您的建议.
考虑以下基本情况:
Mapper.CreateMap<FromBase, ToBase>()
.Include<FromD1, ToD1>()
.Include<FromD2, ToD2>();
Mapper.CreateMap<FromD1, ToD1>()
.ForMember( m => m.P0, a => a.MapFrom( x => x.Prop0 ) )
.ForMember( m => m.P1, a => a.MapFrom( x => x.Prop1 ) );
Mapper.CreateMap<FromD2, ToD2>()
.ForMember( m => m.P0, a => a.MapFrom( x => x.Prop0 ) )
.ForMember( m => m.P2, a => a.MapFrom( x => x.Prop2 ) );
Mapper.AssertConfigurationIsValid();
FromBase[] froms = {
new FromD1() { Prop0 = 10, Prop1 = 11 },
new FromD2() { Prop0 = 20, …Run Code Online (Sandbox Code Playgroud)