zoukankan      html  css  js  c++  java
  • LightSwitch 2011 数据字段唯一性验证方案

    LightSwitch 2011 数据字段唯一性验证方案


    验证单表数据的某个字段不能输入重复值

    设置实体字段唯一索引

    如果不写代码,那么验证只会在用户提交[保存]数据后,会提示错误,很明显这样的用户体验并不好,因此还需要做以下步骤

    添加自定义验证

     View Code

     
    partial void UserName_Validate(EntityValidationResultsBuilder results)
            {
                // results.AddPropertyError("<错误消息>");
                bool duplicateExists = false;
               
                switch (this.Details.EntityState)
                {
                    case EntityState.Added:
                        {
                            //基于页面未提交数据的验证
                            duplicateExists = (from item in DataWorkspace.ApplicationData.Details.GetChanges().AddedEntities.OfType<Employee>()
                                               where item.UserName == this.UserName && !string.IsNullOrEmpty(this.UserName)
                                               select item).Count() > 1 ? true : false;
                            //基于数据库的验证
                            if (!duplicateExists)
                            duplicateExists = (from Employee emp in DataWorkspace.ApplicationData.Employees.Cast<Employee>()
                                               where this.UserName != null &&
                                               string.Compare(emp.UserName, this.UserName.Trim(), StringComparison.InvariantCultureIgnoreCase) == 0
                                               select emp).Any();
                            break;
                        }

                    case EntityState.Modified:
                        {
                            duplicateExists = (from item in DataWorkspace.ApplicationData.Details.GetChanges().ModifiedEntities.OfType<Employee>()
                                               where item.UserName == this.UserName && !string.IsNullOrEmpty(this.UserName)
                                               select item).Count() > 1 ? true : false;
                            if (!duplicateExists)
                            duplicateExists = (from Employee emp in DataWorkspace.ApplicationData.Employees.Cast<Employee>()
                                               where this.UserName != null &&
                                               string.Compare(emp.UserName, this.UserName.Trim(), StringComparison.InvariantCultureIgnoreCase) == 0
                                               select emp).Any();
                            break;
                        }
                }

                if (duplicateExists)
                {
                    results.AddPropertyError(string.Format("该用户[{0}]已经存在。", UserName));

                }

    运行结果如下

  • 相关阅读:
    转 mysql front安装与使用教程 mysql 工具
    转 rac中并行 PARALLEL 的设置
    转 oracheck
    OCR 维护 crsd.log
    转 Comparison of Red Hat and Oracle Linux kernel versions and release strings
    转 ORACLE 查看RMAN的备份信息总结
    转载 Some indexes or index [sub]partitions of table VAS.TAB_PUB_CALLLOG have been marked unusable
    ORACLE CBC LATCH 检查
    转 PyCharm 进行调试 以及怎么熟悉一个已经成熟的项目的代码和断点 以及 jetBrains pycharm快捷键
    ecplise 正则替换技巧
  • 原文地址:https://www.cnblogs.com/neozhu/p/2217221.html
Copyright © 2011-2022 走看看