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

                }

    运行结果如下

  • 相关阅读:
    颠倒的价牌|2013年蓝桥杯A组题解析第四题-fishers
    振兴中华|2013年蓝桥杯A组题解析第三题-fishers
    排它平方数|2013年蓝桥杯A组题解析第二题-fishers
    L2-001:dijskstra + 多条最短路径 + 记录中间路径
    2018 蓝桥杯省赛 B 组模拟赛(五)
    差分数组|小a的轰炸游戏-牛客317E
    差分数组
    线性基
    transformer中自注意力和多头注意力的pytorch实现
    transformer中的位置嵌入pytorch代码
  • 原文地址:https://www.cnblogs.com/neozhu/p/2217221.html
Copyright © 2020-2023  润新知