2

次のエンティティがあるとします。

public class Store
{
    public List<Product> Products { get; set; }
    public List<Employee> Employees { get; set; }
    public List<Camera> Cameras { get; set; }
}

つまり、、、および securityStoreを持つです。これをに変換したい:ProductsEmployeesCamerasStoreStoreDTO

public class StoreDTO
{
    public List<int> ProductIds { get; set; }
    public List<int> EmployeeIds { get; set; }
    public List<int> CameraIds { get; set; }
}

つまり、 にStoreDTOはエンティティ ID のみが含まれます。

現在、このコードを使用してセットアップしていAutoMapperます:

Mapper.CreateMap<Product, int>().ConvertUsing(x => x.Id);
Mapper.CreateMap<Employee, int>().ConvertUsing(x => x.Id);
Mapper.CreateMap<Camera, int>().ConvertUsing(x => x.Id);

ご覧のとおり、定型コードがたくさんあります。参照型のすべてのコレクションを整数のコレクションにAutoMapper自動的に変換するように構成する方法はありますか?

4

1 に答える 1

0

これは、少しの LINQ over Reflection で行います。LINQ を使用して、Product、Employee、Camera の基本クラスから派生したすべての型をクエリできます。次に、CreateMap メソッドと ConvertUsing メソッドを呼び出すこれらの型をループします。

このようなものが実際には存在しない理由は、話すタイプのスキャンがないからです。しかし、必要に応じて独自の型スキャンを行うのも悪くありません。

于 2010-09-22T01:57:38.963 に答える