• 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));

                }

    运行结果如下

  • 相关阅读:
    GitHub注册和Git安装
    Git克隆与更新代码
    三,jenkins配置构建执行状态
    四,jenkins设置定时任务
    二,jenkins创建构建任务
    一,jenkins环境搭建
    Python Selenium Web自动化上传/下载文件图文详解
    Robot Framework自动化测试(七)--- jybot模式
    jmeter eval函数之妙用(参数化文件内含各种表达式)
    jmeter ssh+jdbc用法
  • 原文地址:https://www.cnblogs.com/neozhu/p/2217221.html
Copyright © 2020-2023  润新知