2017-01-24 11 views
0

私はapi、アプリケーション、ドメイン、データ層を含むオニオンアーキテクチャのC#でリポジトリpaternを使用しています。アプリケーション層またはビジネス層のリポジトリデータを変換しますか?

私は、アプリケーション層では、データレイヤーから受け取ったデータがわずかに異なるフォーマットになる必要があることに気付きました。例えば、アプリケーション層は、このような

GetPeriods() 
2017-01-01 2017-01-31 50 
2017-02-01 2017-02-28 70 
etc 

としてデータ層からのデータを期待している。しかし、アプリケーション層のセクションで私はまた、このような私が欲しい

GetPeriodsAsDays() 
2017-01-01 50 
2017-01-02 50 
etc 

として一日のリスト形式でこのデータを取得する必要があります私は、correcly両方のリポジトリパターンとタマネギのアーキテクチャを理解していることを確認しますと、私の質問はするべきI

a)に行う私はデータ層からのデータをreciveした後、アプリケーション層におけるTransformPeroidsToDays(GetPeriods)

または

b)は絶対にあなたがアプリケーション層でTransformPeroidsToDays(GetPeriods)をしたいデータ層でGetPeriodsAsDays()を行うと、既にアプリケーション層

答えて

1

ため処分でデータをフォーマットされています。データレイヤーは、生データの作成、取得、更新、および削除(CRUD操作)にのみ関係する必要があります。

データを他のものに変換することは、ビジネスロジックレイヤーに属する「ビジネスロジック」、つまり「アプリケーション」レイヤーと呼ばれていたものです。私はそれを一般的にそれと呼ばれていないので、アプリケーションレイヤー以外のものと呼ぶことをお勧めします。 「アプリケーション」という用語は通常、アプリケーション全体を指します。

+0

データレイヤーがCRUD操作に関係する必要があると言えば、私はあなたに非公式のデータ操作でもある検索操作を含めることを前提としています。 – mko

+0

これは膨大な議論の話題ですが、クエリー内のデータを操作する方法はあまりありません。データをPOCOにプルするエンティティテーブルに対してただちにクエリを実行します。これは、Entity FrameworkやNHibernateなどのORMツールを使用することを可能にします。 –

+0

私はそれに同意することができます。あなたは言う... ORMを使用することを可能にする。申し訳ありませんが、何が可能になりますか? – mko

関連する問題