簡體   English   中英

自動映射器Create.Map()導致NullReferenceException

[英]Automapper Create.Map() leads to NullReferenceException

我不知道,但是我遵循了一些有關如何執行自動映射的步驟。 這里

這是我的情況:

我的主班:

public class Customer
{
  public int Id { get; set; }
  public string LastName { get; set; }
  public string FirstName { get; set; }
  public string Company { get; set; }

  public string GetFullName()
  {
    return string.Format("{0}, {1}", this.LastName, this.FirstName);
  }
}

我的ViewModel:

public class CustomerVM
{
  public string FullName { get; set; }
  public string Company { get; set; }
}

然后進行映射:

Mapper.Create<Customer, CustomerVM>()
      .ForMember(dto => dto.Company, opt => opt.NullSubstitute("No Company"));

然后存儲它:

var customers = _customerSerivce.All.Project().To<CustomerVM>().toList():

現在我的問題是,我不明白為什么它會給我和NRE錯誤。 另外,有關展flattening一些問題。 這也給我NRE錯誤。 我肯定有一些null記錄。 我正在使用Entity Framework

我錯過了什么? 任何想法? 謝謝

我的猜測是NullSubstitute (以及許多其他方法)不能與LinQ生成的查詢一起使用。 在這種情況下,以下代碼不得產生任何錯誤:

Mapper.Create<Customer, CustomerVM>()
    .ForMember(dto => dto.Company,
        opt => opt.MapFrom(T => T.Company ?? "No Company"));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM