2016-04-11 7 views
0

Ich implementiere derzeit ein WebApi. Ich muss im Grunde alle Produkte aus der Datenbank befüllen und die EntityFramework-Datenbank First Approach verwenden. Ich muss meine Geschäftsobjekte und Datenobjekte in der Provider-Klasse automatisieren. Allerdings tut so, bekomme ich folgende FehlerAutomapper Fehler- Fehlende Typ Map-Konfiguration oder nicht unterstützte Zuordnung

Missing type map configuration or unsupported mapping.\r\n\r\nMapping types:\r\nProducts -> Products\r\nProductManagement.DataOjects.Entities.Products -> 
ProductManagement.Models.Products\r\n\r\nDestination path:\r\nIEnumerable`1[0]\r\n\r\nSource value:\r\nProductManagement.DataOjects.Entities.Products"} 

Hier ist meine Datenobjekts

namespace ProductManagement.DataOjects.Entities 
{ 
    public class Products 
    { 
     public int Id { get; set; } 

     public string Name { get; set; } 

     public string Code { get; set; } 

     public DateTime ReleaseDate { get; set; } 
     } 
} 

Hier ist meine Buisness Objekt

namespace ProductManagement.Models 
{ 
    public class Products 
    { 
     public int Id { get; set; } 

     public string Name { get; set; } 

     public string Code { get; set; } 

     public DateTime ReleaseDate { get; set; } 
    } 
} 

Hier ist meine Repository-Klasse, die Linq verwendet das holen Daten

public class ProductRepository : IProductRepository 
    { 
     public IEnumerable<ProductManagement.DataOjects.Entities.Products> GetProductData() 
     { 
      using (var dbProductEntities = new ProductManagement.DataOjects.Ef.RansangEntities()) 
      { 
       return (from a in dbProductEntities.vw_Products 
         select new ProductManagement.DataOjects.Entities.Products 
         { 
          Id = a.Id, 
          Name = a.Name, 
          Code = a.Code, 
          ReleaseDate = (DateTime)a.ReleaseDate 

         }).ToList().AsEnumerable(); 
      } 
     } 


    } 

Hier ist mein Provider-Klasse, wo ich die AutoMapper

public class ProductProvider : IProductProvider 
    { 
     private readonly IProductRepository _productRepository; 


     public ProductProvider(IProductRepository productRepository) 
     { 
      _productRepository = productRepository ; 
     } 

     public IEnumerable<Products> GetProductData() 
     { 
      var productData = _productRepository.GetProductData(); 
      var productViewData = AutoMapper.Mapper.Map<IEnumerable<ProductManagement.DataOjects.Entities.Products>, IEnumerable<ProductManagement.Models.Products>>(productData); 
      return productViewData; 

     } 


    } 

Kann jemand sagen, umgesetzt haben, was das Problem sein?

+0

Haben Sie Ihre Mappings überall definiert - über 'CreateMap'? – PatrickSteele

+0

Nein. Ich habe nicht. Hast du auch? Können Sie mich wissen lassen, wo und wie es geht? – Tom

+0

Siehe: https://github.com/AutoMapper/AutoMapper/wiki/Projection – PatrickSteele

Antwort

0

Sie müssen es wie auf Ihre Modellklasse schreiben:

public class Produkte: IMapFrom < YourBusnessEntityToMap>

Jetzt wird es gut funktionieren. :)

Verwandte Themen