2017-08-21 15 views
0

私はオートマッパーを使用しており、問題なしでデータオブジェクトをビジネスオブジェクトにマップできます。しかし、私は、仮想プロパティを持っているデータオブジェクトをマップしようとすると、それはエラーを投げている:データオブジェクトの仮想プロパティをビジネスオブジェクトにマッピングする際の自動マッパースローエラー

AutoMapper.AutoMapperMappingException:'Unable to create a map expression from AdmissionStatu.AdmissionStatusLookup to AdmissionStatus.AdmissionStatusLookup'

は私のビジネスオブジェクトは、次のとおりです。

public class AdmissionStatus 
    { 
     public long AccountID { get; set; } 
     public string Description { get; set; } 
     public string Comment { get; set; } 
     public AdmissionStatusLookup AdmissionStatusLookup { get; set;} 
    } 

マイデータオブジェクトは、次のとおりです。

public partial class AdmissionStatu 
    { 
     public long AccountID { get; set; } 
     public string Description { get; set; } 
     public string Comment { get; set; } 
     public virtual AdmissionStatusLookup AdmissionStatusLookup { get; set; } 
    } 

リポジトリのクエリ:

var query = from rows in dataContext.AdmissionStatus 
         where rows.AdmissionID == admissionId 
         select rows; 
return ToBusinessObjects(query); 

これは、自動マッパーマッピング設定:

protected virtual IConfigurationProvider CreateAutomappingConfiguration() 
     { 
      return new MapperConfiguration(c => 
      { 
       c.CreateMap<DataType, BusinessType>(); 
       c.CreateMap<BusinessType, DataType>(); 
      }); 
     }} 

ToBusinessObjects方法は次のとおりです。

protected List<BusinessType> ToBusinessObjects(IQueryable<DataType> query) 
     { 
      return query.ProjectTo<BusinessType>(mappingConfig).ToList(); 
     } 

私は、クエリを呼び出し、これまで、私はToBusinessObjects方法でエラーを取得しています。私はすべてのデータオブジェクトをビジネスオブジェクトにマッピングするために同じ設定を使用しています。逆も同様です。これはうまくいきます。しかし、私は仮想プロパティを持つオブジェクトをマッピングしているときには動作していません。ここで間違ったことを助けてくれた人もいます。

答えて

0

この

return Mapper.Map<List<BusinessType>>(query.ProjectTo<BusinessType>(mappingConfig).ToList()) 
+0

を試してみて、私は同じエラー –

+0

仮想財産を得た 'AdmissionStatusLookup'はそれに1つのより多くの仮想プロパティを持っています。それはここで重要ですか? –

+0

AMは仮想プロパティを気にしません:)おそらくマップがありません。 –

関連する問題