這可能是一個簡單的答案,但我剛開始得到AutoMapper的手。AutoMapper - 如何映射到嵌套類型的值 - 可以爲null?
無論如何,我有一個域對象是這樣的:
public class User
{
public string Name { get; set; }
public FacebookUser FacebookUser { get; set; }
}
而一個視圖模型是這樣的:
public class UserViewModel
{
public string Name { get; set; }
public long FacebookUniqueId { get; set; }
}
下面是我在我的AutoMapper配置:
Mapper.CreateMap<User,UserViewModel>()
.ForMember(dest => dest.FacebookUniqueId, opt => opt.MapFrom(src => src.FacebookUser.FacebookUniqueId))
但是當FacebookUser
對象爲空時會引發異常,這是預期的。
我如何告訴AutoMapper:
地圖UserViewModel.FacebookUniqueId到User.FacebookUser.FacebookUniqueId,除了當它爲空,然後使用
0
。
任何想法?
它扔了一個對象裁判錯誤的'src.FacebookUser.FacebookUniqueId',因爲'src.FacebookUser'爲空 - 不知道它爲什麼不適合你。無論如何,添加無效替代品的伎倆 - 歡呼! – RPM1984 2011-04-11 00:49:53
其實,它仍然會拋出錯誤 - 我認爲它的工作原因是我做了一個構建和我的頁面正確渲染。但是當我運行調試模式時,它再次在同一行上拋出異常。猜測AutoMapper會吞噬異常。所以我認爲這個特別的聲明需要空檢查 - 但是如何? – RPM1984 2011-04-11 00:53:12
現在它應該工作。起初我有這種想法,並認爲這不起作用,但顯然它確實如此。對不起,我沒有先測試它。 – Femaref 2011-04-11 01:17:51