2017-08-03 8 views
0

モデルをビューにマップしようとしていますが、AutomapperがIEnumerableを認識しないため、すべての要素を表示しようとしているときにエラーが表示されます。 FixedAssetsをFixedAssetsViewに、FixedAssetsViewをFixedAssetsにマップしようとすると、エラーが表示されます。ここでAutomapper:エラーマッピングタイプ。マッピングの種類:IEnumerable`1 - > IEnumerable`1

は私がマップしようとしているオブジェクトです:

FixedAssets

public class FixedAssets : IEntityBase 
{ 
    public int ID { get; set; } 
    public string name { get; set; } 
    public virtual ICollection<Category> category { get; set; } 
    public string serialNo { get; set; } 
    public string provider { get; set; 
    public DateTime acquisitionDate { get; set; } 
    public DateTime warrantyEnd { get; set; } 
    public int inventoryNo { get; set; } 
    public string allocationStatus { get; set; } 
    public string owner { get; set; } 
    public DateTime allocationDate { get; set; } 
    public string serviceStatus { get; set; } 
    public string serviceResolution { get; set; } 

    public FixedAssets() 
    { 
     this.category = new HashSet<Category>(); 
    } 
} 

FixedAssetsView

public class FixedAssetsView 
{ 
    public int ID { get; set; } 
    public string name { get; set; } 
    public virtual ICollection<CategoryView> category { get; set; } 
    public string serialNo { get; set; } 
    public string provider { get; set; } 
    public DateTime acquisitionDate { get; set; } 
    public DateTime warrantyEnd { get; set; } 
    public int inventoryNo { get; set; } 
    public string allocationStatus { get; set; } 
    public string owner { get; set; } 
    public DateTime allocationDate { get; set; } 
    public string serviceStatus { get; set; } 
    public string serviceResolution { get; set; } 
} 

カテゴリー

public class Category : IEntityBase 
{ 
    public int ID { get; set; } 
    public string categoryName { get; set; } 
    public virtual ICollection<FixedAssets> fixedasset { get; set; } 

    public Category() 
    { 
     this.fixedasset = new HashSet<FixedAssets>(); 
    } 
} 

CategoryView

public class CategoryView 
{ 
    public int ID { get; set; } 
    public string categoryName { get; set; } 

    public virtual ICollection<FixedAssetsView> fixedasset { get; set; } 
} 

Automapper構成

Mapper.Initialize(x => 
     { 
      x.CreateMap<FixedAssets, FixedAssetsView>(); 
      x.CreateMap<FixedAssetsView, FixedAssets>(); 

      x.CreateMap<Category, CategoryView>(); 
      x.CreateMap<CategoryView, Category>(); 

     }); 
+0

私はMyGetから最新のビルドでエラーが表示されていないが、別の答えが適用される場合があります。 [ここ](https://stackoverflow.com/questions/45298110/how-to-ignore-property-of-property-in-automapper-mapping/45300519#45300519)を参照してください。 –

+0

[AutoMapperマッピングでプロパティのプロパティを無視する方法は?](https://stackoverflow.com/questions/45298110/how-to-ignore-property-of-property-in-automapper-mapping) –

答えて

-1

私はあなたのマッパーの初期化で.ForMemberが必要と考えています。

例:

Mapper.CreateMap<IEnumerable<Source>, IEnumerable<Target>>() 
.ForMember(f => f, mp => mp.MapFrom(
           mfrom => mfrom.Select(s => AutoMapper.Mapper.Map(s, new Target()) 
          ) 
     ); 
関連する問題