AutoMapper は初めてで、アプリケーションの Service Layer の CustomerService に次の手動マッピングがあります。同等の AutoMapper マッピング コードを見つけようとしましたが、ネストされた複雑なオブジェクトとコレクションが原因でできませんでした。助けてください私はこの問題を解決するために
ここで CustomerService からのコード: Service.Customer は DataContract であり、 Data.Customer はエンティティです
public Service.Customer GetCustomer(string customerID)
{
Data.Customer customer
= _northwindEntities
.Customers.Single(
c => c.CustomerID == customerID);
return new Service.Customer
{
CustomerID = customer.CustomerID,
CompanyName = customer.CompanyName,
ContactName = customer.ContactName,
Address = customer.Address,
City = customer.City,
Country = customer.Country,
Region = customer.Region,
PostalCode = customer.PostalCode,
Phone = customer.Phone,
Orders
= GetOrders(customer.Orders)
};
}
Service.Order は DataContract であり、Data.Order はエンティティです ...
private static IEnumerable<Service.Order> GetOrders(
IEnumerable<Data.Order> order)
{
return order.Select(o => new Service.Order
{
OrderID = o.OrderID,
OrderDate = o.OrderDate,
OrderDetails = GetOrderDetails(o),
Freight = o.Freight,
ShippedDate = o.ShippedDate
}).ToList();
}
Service.OrderDetail は DataContract であり、Data.Order はエンティティです ...
private static IEnumerable<Service.OrderDetail> GetOrderDetails(
Data.Order order)
{
return order.Order_Details.Select(
o => new Service.OrderDetail
{
Product
= new Service.Product
{
ProductID
= o.Product.ProductID,
ProductName
= o.Product.ProductName
},
Quantity = o.Quantity,
UnitPrice = o.UnitPrice
}).ToList();
}
したがって、OrderDetails は Oreders 内にネストされ、Orders は Customer 内にネストされます ...AutoMapper を使用してこの階層を反映する方法 よろしくお願いします