2009-09-01 7 views
0

私はビジネス/エンティティクラスのレイヤではなく、既存のデータソースを持つ空白のスレートから始めています。通常これはケーキ、エンティティフレームワークの起動、DBでのポイント、それを1日としますが、当面はサードパーティベンダーのデータソースから実際のデータを取得する必要があります。恐ろしいデータソースからきれいなビジネスオブジェクトクラスを生成する

  1. は唯一の汎用ODBCプロバイダ(ないSQL)
  2. は、非常に悪い構文を持って命名し、いくつかのケースでは、どこでも
  3. は優に超える100のテーブル、組み合わされると、なりを持つデータを複製からアクセスすることができます1,000列/データの性質の近傍

私はこれだけから読み取り専用が必要ですDBでは、更新/挿入/削除をサポートする必要はありません。アプリケーションごとに1回、「汚れた」データをクリーンなエンティティに抽出するだけです。

いいえ、きれいな、よく名づけられたエンティティクラスからできるだけデータベースを分離したいと思います。

  1. DBテーブルからの最初のエンティティクラスを生成します。

    はに良い方法はありますか? (そのようにして、クラスプロパティの名前を変更して、スクラッチから始めるのではなく、それをサニタイズするだけです)。

  2. DBから1000個のプロパティセットを書かずに素敵でクリーンなクラスにデータをマップしますか?

編集:それはそこにすでに何に基づいて、可能な限り既存のコードの多くを生成し、その後、必要に応じて微調整することであるとして、ここでの主な目的は、擬似ORMを思い付く限りではありません手作業による集中的なクラス作成作業が大幅に削減されています。

答えて

3

私はデータベーススキーマからクラスを自動的に生成するのを避け、エンティティの構造をより制御できるようにしたいのです。データベース構造にとって意味のあることは必ずしもクラス構造には意味がありません。サードパーティーやレガシーシステムでは、データベースやフラットファイル、その他のコンポーネントなどのビジネスオブジェクトに、アダプターパターンを使用してより適切なものに変換します。

これは、ビューやストアドプロシージャを作成して、データベースの現在の構造よりもニーズに適したマナーのデータを表すことができます。これはあなたがデータベースに触れることが許されていることを前提としています。

+0

あなたが探しているのはただの準備ができていれば、私はジェームズが言ったことに行き、あなたが望む清潔なオブジェクトのように見えるビューを作成し、それらのクラスを作成します。 – Chris

2

データベースをダンプします。つまり、スキーマを再設計し、データを移行すればよいはずです。

+0

残念ながら、ダーティー・データベースのライブ・データです。 – Brandon

関連する問題