【问题标题】:How to prevent duplicate entries in table using silverlight wcf ria services如何使用 silverlight wcf ria 服务防止表中的重复条目
【发布时间】:2014-10-29 00:02:53
【问题描述】:

我正在使用下面的链接开发一个示例应用程序。

http://code.msdn.microsoft.com/Getting-Started-WCF-RIA-1469cbe2.

它是一个使用链接中提到的 wcf ria 服务的 Silverlight 业务应用程序。

在示例中,在添加新员工时,如果员工的“职称”字段在数据库中是唯一的,并且用户尝试输入重复的职称,我该如何防止呢?我的意思是,如果一个人输入两个相同的“标题”,它应该正确验证。在当前情况下,我该如何做到这一点?我正在使用子窗口添加新员工...

有人可以帮忙吗?

【问题讨论】:

    标签: validation silverlight-4.0 wcf-ria-services


    【解决方案1】:

    您可以使用一个 CustomValidation 来解决您的问题,我认为这是最好的方法,因为您可能会或可能不会在客户端加载所有记录,如果您没有加载所有员工,您需要转到DB检查是否有一个标题beeing输入...

    基本上是这样的:

    首先创建负责员工验证的类

    public class EmployeeValidationRules
    {
    }
    

    然后是实际执行验证的方法:

    public static ValidationResult ValidateTitle(string title, ValidationContext context)
    {
        AdventureWorks_DataEntities objectContext = new AdventureWorks_DataEntities();
    
        Employee employee = context.ObjectInstance as Employee ;
        if (objectContext.Emplyees.Any(e => e.Title == employee.Title))
        {
            return new ValidationResult("Title Allready Exists", new string[] { "Title" });
        }
    
        return ValidationResult.Success;
    }
    

    在 Employee 类中的域服务生成的元数据上搜索 title 属性,您必须添加此标记:

    [CustomValidation(typeof(EmployeeValidationRules), "ValidateTitle")]     
    public string Title{ get; set; } 
    

    注意:所有这些都必须在服务器端完成...

    您可以在此处找到有关 WCF 验证的更多信息:

    http://www.silverlightshow.net/items/WCF-RIA-Services-Part-6-Validating-Data.aspx

    这是 Jeff Handley 关于 WCF 验证的另一篇写得很好的文章:

    http://jeffhandley.com/archive/2010/09/25/RiaServicesCustomValidationMethods.aspx

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多