0

自動生成されたPOCOエンティティ(EF 4.x Dbcontext Generatorテンプレートなど)のすぐ上に検証属性を追加しても意味がないことに同意しますか?

ツールを実行するたびに、属性が消去されるためです。

私の質問は:自動生成されたpocosエンティティと検証属性の両方を維持する方法はありますか?

コードファーストのアプローチで可能になると思われますか?

実際、私はデータベースファーストのアプローチでプロジェクトを開始し、POCOを自動生成しました。.ttファイルを削除し、生成されたpocosを保持し、新しいフィールドや検証属性(など)を管理するためのコードファーストアプローチを使用することは可能でしょうか?POCOの変更により、データベーステーブルは更新されますか?

あなたのライトをどうもありがとう。

4

2 に答える 2

1

ここにはいくつかの問題があります。1 つ目は、データ モデル クラスに検証属性を配置しようとしているということです。これは、データ オブジェクトをビューに直接渡していることを意味します。それは機能しますが、推奨される方法ではありません。

代わりに、特定のビューに必要な情報のみを持つビュー モデルを使用する必要があり、これらのビュー モデルには検証属性があります。次に、ビジネス ロジックで、ビュー モデルをデータ モデルにマップします。

ただし、ビューでデータ モデルを使用することに決めた場合は、「バディ クラス」と呼ばれるものを使用してメタデータ クラスにバリデータを追加します。

http://hartzer.wordpress.com/2010/01/26/mvc-buddy-class/

最後に、Code first に移動する場合は、Code First の動作が Database first とは大きく異なることがわかります。生成されたエンティティを取得して Code First マッピングにマップすることもできますが、Entity Framework Power Tools CTP1 を使用してデータベースをコード ファースト モデルにリバース エンジニアリングする方がはるかに簡単です。これにより、マッピングも作成されるからです。

于 2012-04-12T18:08:28.047 に答える