0

カスタムビルドのモデル (別のプロジェクト) と DAL (別のプロジェクト) を使用して、Silverlight 3 と ADO.NET Data Services を使用しています。Silverlight プロジェクト内で、.svc ファイルを参照する [サービス リファレンス] を作成します。このファイルは、モデルをポイントします。

これが私の質問です: DataAnnotations (System.ComponentModel.DataAnnotations) の豊富な機能を使用したいのですが、これらの属性を正確にどこに配置すればよいですか? これらの注釈を使用してモデルで装飾すると、[サービス リファレンス] で生成されたプロキシ コードでそれらがレンダリングされません。クラスとそのメンバーだけが表示されますが、DataAnnotations (Reference.cs) は表示されません。

(Reference.cs) ファイルを手動で変更し、いくつかの DataAnnotations を追加すると、これらの変更が Silverlight クライアントに反映されます。生成されたコード、つまりプロキシ コード w/in (Reference.cs) を更新する必要があるとは思いません。ですから、私の質問は、分離されたプロジェクト (Web、SL、モデル、DAL) の Visual Studio 構造のどこで、このカスタム データソース (モデル) をスロー/拡張して DataAnnotations を利用するのですか?

私はこのようなものが欲しいです:

[Required]
public string FirstName
{
    get
    {
        return this._FirstName;
    }
    set
    {
        this.OnFirstNameChanging(value);
        this._FirstName = value;
        this.OnFirstNameChanged();
    }
}
4

2 に答える 2

0

ADO.NET Data Service プロキシ クラスを生成し、ナイアガラ プロジェクトに自動的に検証を追加するための代替コード生成があります。

http://niagara.codeplex.com

于 2009-10-05T01:15:44.307 に答える
0

この記事を読むと、Shawn がコメントを投稿した理由についての洞察が得られると思います。あなたの質問への短い答えはです。Silverlight 開発のスタイルである ModelView-View-Model (MVVM) に従い、モデルのプロパティに DataAnnotations を配置します。これは大きなトピックであり、最初に読んで理解する必要があります。RIA サービス (現在は WCF サービスとして知られていると思います) を確認することをお勧めします。これは、検証ロジックを WCF サービスからクライアントに伝達する場合に非常に役立ちます。

于 2010-01-17T21:04:30.530 に答える