![](/img/trans.png)
[英]How to map object with custom class property that returns object with null property values instead of returning null using Automapper
[英]Automapper: How to Map an Object if Not Null Using EF
我是automapper的新手。 我正在尝试将对象映射到DTO。 该对象的locationId可为空。 如果locationId为null,则需要为DTO的“ LocationName”属性分配空字符串,或者使用EF从SQL中的表中选择locationName。 我该如何完成?
这些课程:
public class Foo
{
public int id { get; set; } //not relevant, here for convention
public int? LocationId { get; set; }
}
public class FooDto
{
public int id { get; set; } //not relevant, here for convention
public string LocationName { get; set; }
}
我的尝试:
Mapper.CreateMap<Foo, FooDto>()
.ForMember( dest => dest.locationName, options => options.ResolveUsing(src=> src.LocationId == null ? "" : src => db.Locations.SingleOrDefault(l => l.Id == src.LocationId).Name) )
我以这个为例,但是它没有使用EF,所以我不知道我在做什么错。 我从来没有得到MapFrom一个明确的答案VS无论是从各种来源,如ResolveUsing 此 。
我担心的是,我正在将一种属性类型映射到另一种属性类型并使用EF。 事实是,自动映射器不在乎。 此代码有效:
Mapper.CreateMap<Foo, FooDto>()
.ForMember( dest => dest.locationName, opt => opt.ResolveUsing(src=> src.LocationId == null ? "" : db.Locations.SingleOrDefault(l => l.Id == src.LocationId).Name) )
当问题出在我的lambda表达中时,我想得太多了。 我两次通过了论点,因为我没有考虑它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.