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

}

运行结果如下

转载于:https://www.cnblogs.com/neozhu/archive/2011/10/19/2217221.html

LightSwitch 2011 数据字段唯一性验证方案相关推荐

  1. Springboot自定义注解进行数据唯一性验证

    一.添加自定义注解 /*** 自定义注解--字段验证** @author zhuzhibin* @date 2023/5/16 14:25**/ @Target({ElementType.TYPE}) ...

  2. Hive 两张表数据验证方案、两张大表如何进行数据验证以及剔除部分字段进行数据验证

    最近的问题是,宽表在上线之前,需要在测试环境进行试跑,试跑结束后如何跟线上正式数据进行比对呢?简单记录一下设计方案. 1.小表数据验证 一些字段比较少的表进行数据验证的方案之前出过 Hive 数据模型 ...

  3. html 字段唯一性校验,使用ModelForm校验数据唯一性

    在设计模型类的时候,将指定字段设置unique=true属性,可以保证该字段在数据库中的唯一性. 使用ModelForm可以将指定模型类快速生成表单元素.在提交数据后,使用is_valid()校验时, ...

  4. 独家 | 一文读懂数据质量和验证检查(附代码)

    作者:Vinod Kumar 翻译:季洋 校对:王雨桐 本文约1600字,建议阅读8分钟. 本文主要讲述关于数据质量和验证检查的实例,以及运用Apache Spark和Scala采用编码来确保数据质量 ...

  5. 为什么我们需要新颖的身份验证方案?

    by Cossack Labs Dev Stories 哥萨克实验室开发故事 为什么我们需要新颖的身份验证方案? (Why we need novel authentication schemes?) ...

  6. TRS Database admin数据字段类型总结

    TRS Database admin 一共有6中数据类型 日期类型   date 日期类型只能用来存储"年月日时分秒"这类表示日期的数据 数值类型   number 只能用来存储整 ...

  7. 大数据治理平台建设方案(文末附PDF下载)

    这份材料我给满分!分享一份非常好的大数据治理平台解决方案材料,这份PPT将理论与实践相结合,值得仔细阅读,建议收藏. 文档目录主要包含了以下几点: 数据治理概述 某行数据现状及问题 数据治理阶段目标 ...

  8. 10万字城市大脑一网统管大数据分析平台及大数据展示平台建设方案

    导读:原文<10万字城市大脑一网统管大数据分析平台及大数据展示平台建设方案>word(获取来源见文尾),本文精选其中精华及架构部分,逻辑清晰.内容完整,为快速形成售前方案提供参考. 目   ...

  9. MVC5 数据注解和验证

    ①利用数据注解进行验证 ②创建自定义的验证逻辑 ③模型元数据注解的用法 ①先创建数据源 1,创建我们的Model  Order 2,创建控制器带EF 选择模型为Order 当你运行的时候会报错,需要代 ...

最新文章

  1. 算法72----最大正方形
  2. 大凉山的美术课,怎么就跟英特尔扯上关系了
  3. 【Linux网络编程】基于TCP流 I/O多路转接(poll) 的高性能http服务器
  4. 微框架spark--api开发利器
  5. 产生数(floyd+高精度计算)
  6. python读数据库的通信协议是,Python操作SQLite数据库过程解析
  7. idea查询类_Spring Security入门(三): 基于自定义数据库查询的认证实战
  8. 《FPGA全程进阶---实战演练》第二十一章 电源常用类型:LDO和 DCDC
  9. 太空飞行计划 网络流
  10. 专家告诉你,这些和AI相关的新岗位在大公司很吃香!
  11. 在Ubuntu系统中重置root密码
  12. php怎么实现ubb代码,php实现过滤UBB代码的类
  13. 计算机接口中的shl,西安交通大学19年5月补考《微机原理与接口技术(高起专)》作业考核试题【参考答案】...
  14. Spark常用端口号
  15. 基于QT和DCMTK的Dicom 图像浏览器---收尾二
  16. 软件开发模式(瀑布、原型、增量、螺旋、敏捷开发)
  17. 大数据hadoop讲解
  18. java char取值范围是_Java 基本数据类型取值范围讲解
  19. SAP-ABAP-如何查找系统中已经存在的增强(包括1代2代3代BTE表字段增强等)和标准的增强点
  20. 远程桌面 多人同时 使用谷歌浏览器

热门文章

  1. 标签有关用法以及锚点定位;
  2. Spring Boot 传参方式
  3. BZOJ 2733 线段树的合并 并查集
  4. 有人WIFI模块使用详解
  5. 【ZZ】大数据架构师基础:hadoop家族,Cloudera系列产品介绍
  6. Codeforces Round #348 (VK Cup 2016 Round 2, Div. 2 Edition) D. Little Artem and Dance 模拟
  7. AirPrint: 无交互的后台打印实现(Print without UI,iOS8+)
  8. 《统一沟通-微软-技巧》-14-Exchange 2010 With SP1-2-UM Integration-1
  9. ffmpeg to webm
  10. maximo 自定义高级数据选择对话框(非表域实现)