2

linq to sql オブジェクト、または必要に応じて Entity Framework オブジェクトがあります。

彼らのために MVC 2 データ注釈を実行したいのですが、私はとてつもなく怠け者です。

データ注釈を自動的に生成する方法はありますか

[Bind(Include = "Title,Description,EventDate,Address,Country,ContactPhone,Latitude,Longitude")]
[MetadataType(typeof(Dinner_Validation))]
public partial class Dinner
{
    public bool IsHostedBy(string userName)
    {
        return HostedBy.Equals(userName, StringComparison.InvariantCultureIgnoreCase);
    }

    public bool IsUserRegistered(string userName)
    {
        return RSVPs.Any(r => r.AttendeeName.Equals(userName,     StringComparison.InvariantCultureIgnoreCase));
    }
}

public class Dinner_Validation
{
    [Required(ErrorMessage = "Title is required")]
    [StringLength(50, ErrorMessage = "Title may not be longer than 50 characters")]
    public string Title { get; set; }

    [Required(ErrorMessage = "Description is required")]
    [StringLength(265, ErrorMessage = "Description may not be longer than 256 characters")]
    public string Description { get; set; }

    [Required(ErrorMessage = "HostedBy is required")]
    public string HostedBy { get; set; }

    [Required(ErrorMessage = "Address is required")]
    public string Address { get; set; }

    [Required(ErrorMessage = "Country is required")]
    public string Country { get; set; }

    [Required(ErrorMessage = "Phone# is required")]
    public string ContactPhone { get; set; }
}

全部自分でやる必要がないように?

4

2 に答える 2

0

データ注釈を生成するのは冗長だと思います。

代わりに、関連するメタデータプロバイダーを作成することをお勧めします。これにより、MVCモデルのバインドと検証で、データアノテーションをまったく必要とせずに、タイプの正しいメタデータが表示されます(または既に持っているデータアノテーションを補足します)。

ここに例があります

于 2010-03-03T19:02:27.700 に答える
0

これには Silverlight ツールボックスから少し借りましたが、VS2010 の MVC3 では問題なく動作するようです。

  1. プロジェクトをコンパイルします。Entity Framework モデルを作成したばかりの場合、これは重要です。
  2. プロジェクトを右クリックします。[アイテムの追加/新規作成] をクリックします。
  3. タイプとして「ドメイン サービス クラス」を選択します。[追加] をクリックします。
  4. ドロップダウンでモデルを選択します。
  5. エンティティのリストで、データ注釈が必要なすべてのオブジェクトを選択します。
  6. 「メタデータの関連クラスを生成する」というラベルの付いたボックスをチェックします。[OK] をクリックします。
  7. 2 つのクラスが生成されます。.metadata のないものを削除するだけです。鬼ごっこ。

それはそれを行う必要があります。これで、注釈を追加するメタデータ クラスが準備できました。(上記で使用したドメイン サービス クラスは、VS2010 の WCF RIA サービス ツールキットと共にインストールされた可能性があります。それについては肯定的ではありませんが、利用可能なアイテムのリストにこれがない場合は、おそらく問題です。)

于 2011-03-20T04:36:39.240 に答える