2012-04-19 54 views
1

我們正在研究用動態數據構建應用程序。我們想要做的是運行一些業務規則(規則看起來在應用程序之外或者回到數據庫中,而不是驗證規則)。當這些規則運行時,我們想返回一個枚舉的驗證錯誤列表。ASP.Net動態數據 - 你可以攔截保存嗎?

問:
是否有在ASP.Net動態數據的方式做某種「Context.Validate()」前的保存,所以我們可以得到業務規則驗證錯誤?

謝謝:)

回答

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. 
} 
相關問題