1

モデルを含む既存のデータ アクセス レイヤー (クラス ライブラリ) を使用したソリューションがあります。このライブラリを呼び出して、ストアド プロシージャを使用して db で crud 操作を行う Web フォーム アプリケーションがあります。この Web フォーム アプリケーションを MVC 3 アプリケーションに変換したい場合、移行のための私のアプローチはどうあるべきでしょうか。エンティティ フレームワークを使用したくありません。同じライブラリが Web サービス プロジェクトで使用されているため、モデルとモデルの操作にデータアクセス レイヤーを引き続き使用したいと考えています。任意のポインター。

4

1 に答える 1

3

Sure View Models は、ビューとの間でデータをビジネス/データ レイヤーに移動するためのものです。データ レイヤーにモデルが既に定義されている場合は、ビュー モデルにデータ モデルを継承させるか、ビューに直接使用させることができます。

継承してから、ビュー モデルで新しいプロパティを使用して、基になる (継承された) プロパティを設定することをお勧めします。このようにして、新しいプロパティに検証属性を追加し、継承されたプロパティを設定してデータベースを更新する前に、クライアントとサーバーで検証を実施できます。

例として、データレイヤーに次のものがあるとします。

public class Person
{
    public string Name {get; set;}
    public string Email {get; set;}
}

次に、View Model で以下を使用できます。

public class VPerson : Person
{
    [Required(ErrorMessage = "Name is required.")]
    [StringLength(50, ErrorMessage = "Name cannot be longer than 50 characters.")]
    public string VName { get; set; }

    [Required(ErrorMessage = "Email is required.")]
    [RegularExpression(Settings.EmailRegex, ErrorMessage = "Email Address is not valid.")]
    [StringLength(50, ErrorMessage = "Email cannot be longer than 50 characters.")]
    public string VEmail { get; set; }

    public void SavePerson()
    {
        Name = VName;
        Email = VEmail;
        // update the DB
    }
}

検証を必要としないプロパティ (つまり、ドロップダウン リスト) は、直接使用できます。

実際には継承する必要はなく、SavePerson でデータ レイヤーを呼び出すだけでかまいません。

于 2013-01-09T02:14:01.407 に答える