2011-08-15 5 views
0

私は倉庫用のプログラムを作成したいと思います。ORMフレームワークはデータベースの直接クエリと比較されます

私は誰でもデータベースレイヤーのフレームワークを使用することができます。

以前はエンティティフレームワークを使用していましたが、それは多くの不明なエラーが発生するため、楽しめませんでした。

誰かがnhibernateやその他のフレームワークを提案していますか、まっすぐなクエリやストアプロシージャを使用すると、より信頼性が高く、優れていますか?

+2

ORMを使用して最初に学習します。 "多くのノンノンエラー"は、エンティティのFraemworkの問題ではありません。ちょっと、コンピュータの正面にいる人の問題です。 ORMs a wonderfull - EFは紛らわしい平凡なものです。しかし、あなたが何をするか分からない限り... ORMは魔法のようにthigsを修正しません。 ORMはDALには使用されません.DALにはORMが含まれています。それらは、永続オブジェクトのランタイムであるビジネス層ツールです。 – TomTom

答えて

4

私はORMがこの種の問題には最適ではないと思います。

ORMの 'O'は 'オブジェクト'を表します。データを倉庫に移動するためだけにオブジェクトモデルを作成する必要はありません。

ORMは、オブジェクト指向のプログラマが中間層のインスタンスベースのオブジェクトとデータベース側のセットベースの関係の違いを忘れないようにするために、開発者の便宜のために多くの機能を備えています。 SQLは、ORMツールによって生成されます。それはあなたがデータを移動したいと思うものではないかもしれません。

実際に飛び込む必要がある3文字は、ETL:Extract-Transfer-Loadです。これは、トランザクション型データストアからデータウェアハウスにデータを移動するために使用される、より一般的なアプローチです。

1

エンティティフレームワークは、通常、制約などのデータベースからのエラーをスローします。ただし、Entity Frameworkを使用して直接SQLとストアドプロシージャ呼び出しを行うこともできます。

ORMではなくOMRのタイトルを修正する必要がありますか?

0

私はORMフレームワークに過信があると思います。彼らには、パフォーマンスの低下などの問題があります。 Linq-to-SQLを使用すると、ストアドプロシージャとしてより高度なクエリを行うことができます。かなり簡単で安定しています。 または、SubSonicを使用してください。実際、気に入ったら、多くのストアドプロシージャを実行するのに間違っていることはありません。魔法の弾丸はありません。すべての解決策には長所と短所があります。