前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >LightSwitch 2011 数据字段唯一性验证方案

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

作者头像
阿新
发布2018-04-12 16:15:54
8710
发布2018-04-12 16:15:54
举报
文章被收录于专栏:c#开发者

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

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

设置实体字段唯一索引

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

添加自定义验证

View Code

代码语言:javascript
复制
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));

            }

运行结果如下

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2011-10-19 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • LightSwitch 2011 数据字段唯一性验证方案
    • 验证单表数据的某个字段不能输入重复值
    相关产品与服务
    数据库
    云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档