3 層アプローチの MVC 3 アプリケーションがあります。私のデータ層には、edmx ファイルと、edmx ファイルが変更されるたびに基本的な DataAnnotations を使用してエンティティを生成する t4 テンプレートが含まれています。
さらに、既存のエンティティとプロパティの追加の検証を可能にするために、以下を利用しています。これにより、自動生成された DataAnnotations を独自の注釈と組み合わせることができます。
[MetadataType(typeof (PersonMetaData))]
public partial class Person
{
}
public class PersonMetaData
{
[RegularExpression(@"(\w|\.)+@(\w|\.)+", ErrorMessage = "Email is invalid")] public string Name;
}
さらに進んで、次の記事を見つけましたhttp://www.howmvcworks.net/OnModelsAndViewModels/ExtendingTheModelBinderForEnhancedValidation
これにより、既存の ASP.NET MVC ロジックを使用して、必要に応じて独自の検証メソッドを実装できます。この例は私にとってはうまくいきます。
残念ながら、私は 3 層アプリケーションを持っていて、(データ層ではなく) ビジネス ロジックでエンティティを検証したいので、循環依存関係を作成せずにビジネス ロジックへの呼び出しを Validate メソッドに入れることはできません。
自動生成された DataAnnotations、独自の検証拡張機能、ビジネス ロジックでの検証、および IBindingValidatable メソッドを組み合わせるより良い方法はありますか?
ありがとうございました