0

mvc3 アプリケーションに問題があり、検証用のものを作成する必要があります。しかし、データベースの最初のアプローチでEFを使用したため、通常のモデルクラスはありません。

クラスを開いて次のように書くことはできません。

[Required]
[StringLength(10)]

この問題を解決するには?

4

1 に答える 1

2

MetadataType 属性を使用できます。したがって、EF が変更できない次のクラスを顔に吐き出したとします。

public partial class Foo
{
    public string Bar { get; set; }
}

これは部分クラスであるため、拡張できます。

[MetadataType(typeof(FooMetadata))]
public partial class Foo
{
}

次に、メタデータを定義します。

public class FooMetadata
{
    [Required]
    [StringLength(10)]
    public string Foo { get; set; }
}

または、単にデータ注釈を捨てて、FluentValidation.NET (私が使用し、強くお勧めします) などの実際の検証フレームワークを使用して、モデルで複雑な検証ルールを流暢に表現できるようにし、ASP.NET MVC との優れた統合を実現します。また、検証ロジックを分離してエレガントに単体テストすることもできます。

于 2012-07-05T10:06:47.480 に答える