2

私は現在、自分自身の学習目的のための栄光のブログにすぎない最初の MVC プロジェクトに取り組んでいます。その時点でコードファーストが存在することさえ知らなかったので、データベースファーストのアプローチから始めました。そのため、検証をどのように処理する必要があるかについて、混乱が生じました。

データベースには、 EF によって生成された対応するクラスを持つテーブルArticlesがあります。の各プロパティに一致するプロパティを持つクラスArticleもあります。私は単純な CRUD 操作を行っていますが、現在、代わりに厳密に型指定されたモデルを使用しており、データの検証は行われていません。ArticleViewModelArticleArticleArticleViewModel

今日、私の選択肢を評価するためにいくつかの調査を行った後、次の 質問このブログ投稿を見つけました。そのため、EF で生成されたクラスに属性を適用してそこに検証を配置できるように見えますがMetadataType、検証を含むバディ クラスは悪い習慣であると読み続けています。理由はわかりませんが、もしそうなら、バディクラスを無視して次のようなことをしなければならないということですか?

[MetadataType(typeof(ArticleViewModel))]
public partial class Article
{
    public Article(ArticleViewModel avm)
    {
        // Copy the properties from the ArticleViewModel into an Article.
    }
}

次に、必要に応じて ArticleViewModel に DataAnnotations を適用し、使用するコントローラー/ビューを更新しますArticleViewModelか?

ご意見をお寄せいただきありがとうございます。:)

4

1 に答える 1

3

はい、私は最近このアプローチを学びました! 追加のコードが含まれることを気にしない限り、これは良い習慣です。asp.net mvc 3 のどこに検証を配置しますか? を参照してください。詳細とコード例の受け入れられた回答については。

于 2011-07-04T16:52:53.247 に答える