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

                }

    运行结果如下

  • 相关阅读:
    敏捷开发中的sprint是什么意思_百度知道
    桐君堂_百度百科
    HSTS Preloading
    做CloudXNS产品运营的这半年 – CHINA Testers
    java~spring-ioc的使用
    java~api返回值的标准化
    java8的函数式接口
    redis使用场景和java测试案例
    springboot~注册bean的方法
    学生信息管理系统问题集锦
  • 原文地址:https://www.cnblogs.com/neozhu/p/2217221.html
Copyright © 2011-2022 走看看