2012-04-27 30 views
1

私は全く同じ名前の属性を持つ2つのクラス(1つのビジネスクラスと1つのデータクラス)を持っています。クラス属性を他の(同じ属性)クラスにマッピング

この時点で私は他のすべての属性にバン1クラスをマップする「変換」メソッドを書いている:

private class BusinessLogic convert(Datalogic dataclass) 
{ 
    Businesslogic businessclass = new BusinessLogic(); 
    businessclass.ID = dataclass.ID; 
    businessclass.name = dataclass.name; 
    ..... 
    return businessclass; 
} 

はるかに簡単な方法がなければならないということのようです。私はどのようにそれを検索するか分からない。誰かが私を正しい軌道に乗せることができますか?

答えて

4

これは、マッピングツールのタスクです。 AutoMapper - すべてのプロパティに同じ名前が付けられている場合、慣習的に、それらは対象クラスの対応するプロパティにマップされるため、1行になります。可能性があなたの特定の例

Mapper.CreateMap<Datalogic, BusinessLogic>(); 
BusinessLogic businessclass = Mapper.Map<Datalogic, BusinessLogic>(dataclass); 
+0

のwonderfull、1つしか残っ質問。マッピングがクラスライブラリで使用されている場合は、どこでマッピングを定義しますか? –

2

AutoMapperはあなたのために、このObject to Objectマッピングを行い利用できるライブラリです。

AutoMapperで

、あなたのコードは

Mapper.CreateMap<Datalogic , Businesslogic >(); 
Product product= GetProductFromDB(2); 
Businesslogic productViewItem = Mapper.Map<Datalogic , Businesslogic >(product); 

ホーム・ページのようないくつかのものにすることができる:http://automapper.org/

出典:https://github.com/AutoMapper/AutoMapper

チュートリアルリンクhttp://www.codeproject.com/Articles/61629/AutoMapper

関連する問題