2016-04-18 8 views
0

私は新しいプロジェクトに取り組んでおり、MVCとエンティティフレームワークを使いたいと思っていました。懸念の分離の目的のために。それが再利用できるように、私はそうのように私のプロジェクトを構築する計画。..ビジネスオブジェクトへのエンティティオブジェクト

  • MyProject.Web(このプロジェクトはMVCのVとCを収容する)
  • MyProject.Model(このプロジェクトはMVCのMを収容します(ビジネスオブジェクト/ドメインオブジェクトが存在する場所)
  • MyProject.BLL(これはビジネスロジックを記述し、インターフェイス経由で利用可能になります)
  • MyProject.Entity db最初のアプローチを使用してウィザードによってオブジェクトが生成されます)

私の質問は、私のBLLのエンティティオブジェクトをビジネスオブジェクトに変換する最良の方法は何ですか?私のマッピングでは、2つのテーブルを結合し、ビジネスオブジェクトのフィールドにマップする合計を計算する必要があります。

これは良い例ではありませんが、私は顧客テーブルと注文テーブルに参加し、同じ顧客のために2つのレコードを戻したとしましょう。 1つは午前に注文し、もう1つはPMに注文します。私はその日の合計を計算し、それをビジネスオブジェクトのフィールドにマップする必要があります。

Automapperは手動でDTOを記述するのではなく、複雑なマッピング(合計計算)を行うことができるかどうかわかりません。

EF 6でカスタムマップを手動で設定する方法はありますか?

答えて

0

Automapperを使用すると、複雑なマッピングに投影を使用することも、AutoMapperのQueryableExtensionsヘルパーメソッドを使用することもできます。

次のリンクの集計セクションを参照してください。

LINQは、集計クエリをサポートすることができ、かつAutoMapperはLINQ 拡張メソッド

https://github.com/AutoMapper/AutoMapper/wiki/Queryable-Extensions

+0

ありがとうございますサポートしています!私はそれを試してみましょう。私は更新を投稿するために戻ってきます。 – NKD

+0

私はオートサパーを見て、電球が上がった。オートマッペを使う代わりに。すべてのエンティティオブジェクトが部分クラスであるため、子レコードの合計を返すようにエンティティオブジェクトの拡張を作成しました。これが正しい方法であるとは確信していませんが、問題を解決します。 automapperが集計を行うことができるかどうかは、私の質問に実際に答えるので、私はあなたの回答を答えにします。ありがとう! – NKD

+0

@NKD間違いなく確実なオプションです。物事を行うには通常複数の方法があります。 –

関連する問題