私はBusinessLayer, DTO library,DataService, EntityModel(wher EDMX sits)
を持っていますが、DTOライブラリはビジネス層とデータ層の両方を指します。私はautomapper
をデータレイヤーに実装しようとしていますが、エンティティオブジェクトをDTOオブジェクトにマップし、dataService
ライブラリからDTOを返したいとします。WPFアプリケーションでオートマトンを実装する方法と場所
現在
public class DataService
{
private MapperConfiguration config;
public DataService()
{
IMapper _Mapper = config.CreateMapper();
}
public List<Dto.StudentDto> Get()
{
using(var context = new DbContext().GetContext())
{
var studentList = context.Students.ToList();
config = new MapperConfiguration(cfg => {
cfg.CreateMap<Db.Student, Dto.StudentDto>();
});
var returnDto = Mapper.Map<List<Db.Student>, List<Dto.StudentDto>>(studentList);
return returnDto;
}
}
}
がどのように私はdataseriveへの呼び出しが行われたときに自動的に初期化する必要があるクラスとautomapperへのすべてのマッピングを移動することができますこの方法をやっていますか?
この静的クラスMyMapperをスタートアッププロジェクトから呼び出す方法私たちはwpf開発のためにプリズムを使用しています。 mapper.Initialize()を各dataserviceクラスから呼び出すとどうなりますか? – PRK
AppDomainごとに一度だけ呼び出す必要があります。 Prismを使用している場合、これを行うにはBootstrapperクラスが適しています。 – mm8
Bootstrapperで初期化したい場合は、このDataServiceプロジェクト参照をUIに追加する必要があります(UIにDataProjectを追加したくありません)、ブートストラップから初期化する方法 – PRK