[英]Automapper create destination type object with no values inside
我遇到了這個問題中提到的類似問題AutoMapper setting destination object to null
我的映射器正在創建一個空的 object 目標類型,盡管我可以在調試器中看到我的源 object 中的值。
我的source object是submitOrder類型的grpc消息
syntax = "proto3";
option csharp_namespace = "SubmitOrderService";
package tracksubmitorder;
import "google/protobuf/empty.proto";
import "google/protobuf/timestamp.proto";
service SubmitOrderService {
rpc SubmitOrder(submitOrder) returns (google.protobuf.Empty);
}
// The request message containing the user's name.
message submitOrder {
int64 orderID= 1;
int32 beef =2;
int32 chicken =3;
int32 tofu =4;
int32 shrimp =5;
google.protobuf.Timestamp createdOn = 20;
string comment=30;
}
我的目的地是數據 model
namespace SubmitOrderService.Models
{
public class Submit_Order
{
public long Id { get; set; }
public string Comments { get; set; }
public DateTime CreatedAt { get; set; }
public int CountBeef { get; set; }
public int CountChicken { get; set; }
public int CountTofu { get; set; }
public int CountShrimp { get; set; }
}
}
這是我的配置文件
using AutoMapper;
using SubmitOrderService.Models;
namespace SubmitOrderService
{
public class SubmitOrderProfile: Profile
{
public SubmitOrderProfile()
{
CreateMap<submitOrder, Submit_Order>().ForMember(
dest => dest.Comments,
opt => opt.MapFrom(src => $"{src.Comment}")
).ForMember(
dest => dest.CreatedAt,
opt => opt.MapFrom(src => $"{src.CreatedOn }")
)
.ForMember(
dest => dest.CountChicken ,
opt => opt.MapFrom(src => $"{src.Chicken}")
)
.ForMember(
dest => dest.CountBeef ,
opt => opt.MapFrom(src => $"{src.Beef}")
)
.ForMember(
dest => dest.CountShrimp ,
opt => opt.MapFrom(src => $"{src.Shrimp}")
)
.ForMember(
dest => dest.CountTofu ,
opt => opt.MapFrom(src => $"{src.Tofu}")
).ReverseMap();
}
}
}
這是我的映射行,其中 reqOrder 是 submitOrder 類型
var order1 = _mapper.Map<Submit_Order>(reqOrder);
附言。 這是我第一次嘗試 Automapper,因此我們將不勝感激。
解決了問題。 我必須為我的CreatedAt成員顯式地將google.protobuf.Timestamp轉換為DateTime 。 像這樣,
ForMember( dest => dest.CreatedAt, opt => opt.MapFrom(src => src.CreatedOn.ToDateTime()) )
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.