1

我们正在考虑使用动态数据构建应用程序。我们想做的是运行一些业务规则(查看应用程序外部或返回数据库的规则,而不是验证规则)。运行这些规则时,我们希望返回验证错误的枚举列表。

问题:
ASP.Net 动态数据中是否有办法在保存之前执行某种“Context.Validate()”,以便我们可以得到业务规则验证错误?

谢谢 :)

4

2 回答 2

0

截取保存的方式取决于您使用的对象/关系映射器 (O/RM)、LinqToSQL 或实体框架。

如果您使用的是 LinqToSql,请参阅此演练: http: //msdn.microsoft.com/en-us/library/bb629301 (v=vs.100).aspx

如果您使用的是实体框架,请参阅此链接:http: //msdn.microsoft.com/en-us/data/gg193959.aspx

于 2012-09-11T14:56:39.347 回答
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.
}
于 2012-10-31T11:30:27.543 回答