2012-04-19 8 views
1

私たちは動的なデータを使ってアプリケーションを構築しようとしています。私たちがやりたいことは、いくつかのビジネスルール(アプリケーションの外に出てくるルールや、検証ルールではなくデータベースに戻るルール)を実行することです。これらのルールが実行されると、列挙された検証エラーのリストを返したいと思います。ASP.Net動的データ - 保存を代行できますか?

質問: ビジネスルールの検証エラーを取得できるように、保存前に「Context.Validate()」を実行する方法がASP.Net Dynamic Dataにありますか?

感謝:)保存を傍受する

答えて

0

方法オブジェクト/リレーショナルマッパー(O/RM)によって異なりますが、LinqToSQLまたはEntity Frameworkのを使用しています。

あなたがLinqToSqlを使用している場合は、このチュートリアルを参照してください。http://msdn.microsoft.com/en-us/library/bb629301(v=vs.100).aspx

あなたはEntity Frameworkのを使用している場合は、このリンクを参照してください。http://msdn.microsoft.com/en-us/data/gg193959.aspx

0

をあなたのの部分クラスに「OnValidate」メソッドを追加することができますLinqテーブル。このメソッドの中で必要なカスタム検証を実行し、ビジネスルールに失敗した場合は、ValidationExceptionをスローするなど適切に対応することができます。これにより、データがデータベースに保存されなくなります。

[MetadataType(typeof(LinqClassNameMetadata))] 
    public partial class LinqTableClassName 
    { 
     //HERE IS THE SOLUTION 
     partial void OnValidate(System.Data.Linq.ChangeAction action) 
     { 
      //Implement business rules here 

      //If something is wrong, you can do something like 
      throw new ValidationException("assert whatever is wrong"); 
     } 
} 

public class LinqClassNameMetadata 
{ 
     //Just an example 
     [Required] 
     public object WhateverColumn; 

     //etc. 
} 
関連する問題