請問我該如何做mapper才能把Assets的資料利用關聯性includes進來呢?
MapperConfiguration = new MapperConfiguration(cfg =>
{
cfg.CreateMap<UserBalancesDto, UserBalances>();
}
public class UserBalancesDto
{
public Int64 id { get; set; }
public Int64 asset_id { get; set; }
public virtual Assets assets { get; set; }
public string user_id { get; set; }
public decimal total { get; set; }
}
public class Asset
{
public Int64 id { get; set; }
public string name { get; set; }
public decimal amount { get; set; }
}
public class UserBalances
{
public Int64 id { get; set; }
public Int64 asset_id { get; set; }
[ForeignKey("asset_id")]
public virtual Assets assets { get; set; }
public string user_id { get; set; }
public decimal total { get; set; }
}
直接再把想要轉到Dto類別寫下去就好
MapperConfiguration = new MapperConfiguration(cfg =>
{
cfg.CreateMap<UserBalancesDto, UserBalances>();
cfg.CreateMap<AssetDto, Asset>();
}
謝謝回覆.有試著這麼做了,結果不可以
原本想讓它有.include(x=>x.Assets)這樣的結果
目前的作法是自己寫代碼把資料重新讀出來.
先問一下 你想要的是哪一種做法
1.先把所有資料都到UserBalances並且Include Asset裡面才做AutoMapper轉型
Ans:用我上面的方法就可以了
2.在你用AutoMapper幫UserBalances做轉型的時候順便幫你從資料庫撈取資料
Ans:cfg.CreateMap<UserBalancesDto, UserBalances>()
.ForMember(dest => dest.assets,
opt => opt.MapFrom(src => dbContext. Assets.FirstOrDefault(a=>a.id==src.asset_id)));