私のチームは、データベース ファーストのアプローチを使用して、ASP.NET MVC 4 で大規模なビジネス Web サイトを作成しています。データベーススキーマに基づいてデータ注釈を自動的に生成できるかどうかは誰にもわかりませんか? フレームワークがデータベース列のプロパティを認識し、生成する POCO クラスのこれらの部分を作成する必要がある場合、データ注釈を含む「バディ」メタデータ クラスを手動で作成する必要があるのは冗長に思えます。どんな提案でも大歓迎です!
4 に答える
1)フレームワークは、テーブル構造に基づいてデータ注釈を外挿するのに適していますが、完全ではありません。
2)残念ながら、フレームワーク以上のものをカスタマイズしたい場合は、Buddyクラスで行き詰まります。それらは少し退屈ですが、これまでのところ、データ注釈をカスタマイズするために私が見つけた最良の方法です。
3)非常に頻繁に、私はカスタムクラスに向かって、生成されたPOCOから離れて自分自身を引き寄せていることに気づきます。その理由は通常、保存と表示の違いです。入力画面で
- 私はよく電話番号を3つのテキストボックスに分割します。
- 外部キーの検索には、選択リストが必要です(多くの場合、モデルに追加されます)。
- 多くの場合、ビュー機能に関連しているが、ストレージテーブルに固有ではない他の値を渡します(表示フィールド、ナビゲーション/パンくず)
LINQ to SQL を見てみましょう。これを使用して、サーバー エクスプローラーからテーブルをドラッグすることにより、グラフィカル エディターで .dbml ファイルを作成できます。
EntityFrameworkでDatabaseFirstアプローチを使用します。エンティティデータモデルウィザードを使用して、既存のデータベースからエンティティモデルを生成できます。http://msdn.microsoft.com/en-us/data/jj206878を参照してください
@Kerezo は、ここでやりたいことをほぼ正確にカバーしています: Add Data Annotation To Entity Framework(または Linq to SQL) によって生成されたクラス
データ注釈を自動的に自動生成することはできません。