ASP.NETアプリケーションでのDALの自動生成

.net asp.net code-generation data-access-layer stored-procedures

ストアドプロシージャを考えて、データアクセスレイヤを自動生成する方法はありますか? Codesmithを使ってcsテンプレートを作成することでこれを実現できることはわかっていますが、そこに無料/有料のソリューションがあるかどうか疑問に思いました。

計画は、アーキテクチャーが持つことです。

ASP.NETの背後にあるコード – >ビジネスレイヤ – >データアクセスレイヤ – >ストアドプロシージャ。

BLレイヤはDALへのパススルーとして機能し、自動生成することもできます。

任意のヒント/アドバイスは本当に感謝しています!

  2  3


ベストアンサー

Entity Frameworkを使用するだけです。http://msdn.microsoft.com/en-us/library/bb399203.aspx

2


Entity Frameworkにはまだ多くの問題があるため、Entity Frameworkを使用することはお勧めできません。 .NET 4.0が正式にリリースされたら、Entity Framework 4.0がリリースされます。 そのリリースで私はおそらくNHibernateとLINQ to SQL(どちらも非常に異なる役割を持っています)を放棄し、LINF to SQLの使いやすさとNHの柔軟性の両方を持っているのでEFを使います。

今のところ、LINQ to SQLを使用して起動および実行するのは非常に簡単で、ほとんどの場合は正常に機能することをお勧めします。

1


現在の形式のEntity Frameworkは、ストアドプロシージャにとって初心者です。 各ストアドプロシージャを機能させるには、手作業が多すぎます。 私は、.net 4 Entity Frameworkについて話すことはできません。

LINQ to SQLは非常にストアドプロシージャ対応です。 / procsオプションを付けてSQLMETALを実行し、DALを自動生成します。

ただし、2つの制約があります。

  1. LINQ to SQLは動的SQLを使用するストアドプロシージャを実行しません。

  2. LINQ to SQLは、一時テーブルからデータを返すストアドプロシージャも実行しません。

明らかな最初の理由は、LINQ to SQLがこれらのsprocsに必要なメタデータを生成できないことですが、ストアドプロシージャの動的SQLはとにかく悪い習慣です。

1


Linq2SQLまたはSubSonicはどちらもこの目的には適しています。

編集:Linq2Sqlはおそらく「死んで」いるが、それは現在の形ではまだかなり役に立つ。 私は長期的な投資をしないだけです。

0


Entity Frameworkに対するもう1つの投票。これはストアドプロシージャではなく、基盤となるテーブル構造によって異なります。 Entity Frameworkがストアドプロシージャの出力に基づいてクラス構造を決定できるようにする方法はわかりません。

私たちの最善のアプローチは、クラスとCRUDストアドプロシージャを手動でコーディングすることです。 多くの人がその解決策について議論するでしょうが、私の経験では、特にフレームワークがブロックするストアドプロシージャを使用する力を考えると、最適ではないSQLが制限される結果となります。

Clicheは理由があります:あなたがそれを正しくしたいのなら、それをあなた自身でしてください。 より多くのサードパーティ製コンポーネントをアプリケーションに導入すればするほど、解決しようとしているより多くの問題はあなたの直接の管理下にはありません。 私はここにない症候群を購読するのは嫌いですが、これは私がそれが有効であると信じる一つのケースです。

0


最も有名な* http://amrelgarhy.com/blog/orm-tools-quot-net-quot/ [ORMツール “.Net”] *のこのリストをチェックしてください。

0


タイトルとURLをコピーしました