自动化字典(转换错误)

问题描述 投票:-1回答:1

我试图自动映射两个字典对象。要映射的类

public partial class Purchase
{
    [Key]
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public int PurchaseId { get; set; }
    public int Quantity { get; set; }
    public decimal? Amount { get; set; }
    public decimal? Payment { get; set; }
    public DateTime Date { get; set; }
    public bool IsPaid { get; set; }
    public int CustomerId { get; set; }
    public int ProductId { get; set; }
    public string User { get; set; }

    public virtual Products Products { get; set; }
    public virtual Customers Customer { get; set; }
}

要映射到的类

   public partial class PurchaseModel
   {
    public int PurchaseId { get; set; }
    public int Quantity { get; set; }
    public decimal? Amount { get; set; }
    public decimal? Payment { get; set; }
    public DateTime Date { get; set; }
    public bool IsPaid { get; set; }
    public int CustomerId { get; set; }
    public int ProductId { get; set; }
    public string User { get; set; }

    public virtual Products Products { get; set; }
    public virtual Customers Customer { get; set; }
}

我的映射功能:

 Mapper.Initialize(cfg => cfg.CreateMap<KeyValuePair<string, Purchase>, KeyValuePair<string, PurchaseModel>>()
                      .ConstructUsing(x => new KeyValuePair<string, PurchaseModel>(x.Key, x.Value)));

Linq声明:

  x.Value 

给出错误无法从Purchase转换为PurchaseModel,但很明显它们是相同的......

提供字典的Linq方法是:

 public async Task<IDictionary<string, List<Purchase>>> GetDaysPurchases(DateTime dateTime)
 {
   var dayspurchases = await cstentity.Purchase.Where(p => p.Date == dateTime).GroupBy(i => i.Customer.Name).ToDictionaryAsync(pur => pur.Key, pur => pur.Select(i => i).ToList());

    return new SortedDictionary<string, List<Purchase>>(dayspurchases);
 }
c# linq automapper
1个回答
1
投票

直接添加PurchasePurchaseModel的地图,其中包括:

            cfg.CreateMap<Purchase, PurchaseModel>();
© www.soinside.com 2019 - 2024. All rights reserved.