【翻译】eXpressAppFramework QuickStart 业务模型设计(十)——在代码中实现数据验证...

这一讲,你将学到如何给业务对象和他们的属性设置规则。最终用户在执行赋值操作后将验证这些规则。你可以实现必填规则使得Position.Title属性不能为空。此规则将在Position对象保存的时候被验证。你还能够看到打破规则的界面提示。

在此之前,我建议你去读一下之前的课程:

·  【翻译】eXpressAppFramework QuickStart 业务模型设计(二)—— 从业务类库中继承

·  【翻译】eXpressAppFramework QuickStart 业务模型设计(四)—— 实现自定义业务类

·  给你的MySolution.Module项目添Validation模块。为此,在解决方案导航的MySolution.Module项目中找到XXXModule.cs文件。双击。调用Module设计器。在ToolBar中,找到DX: XAF.Modules.vX.X。拖动ValidationModule到设计器的RequiredModules项中。重新生成解决方案。

 ·  在Position类的Title属性上应用RuleRequiredField特性。第一个参数,制定Rule ID(如"RuleRequiredField for Position.Title");第二个参数,验证规则的上下文(如 DefaultContexts.Save)。如下代码演示此特性:

[DefaultClassOptions]
[System.ComponentModel.DefaultProperty(
"Title")]
public class Position : BaseObject {
   
//
   private string title;
   [RuleRequiredField(
"RuleRequiredField for Position.Title",DefaultContexts.Save)]
   
public string Title {
      
get { return title; }
      
set { SetPropertyValue("Title"ref title, value); }
   }
}

·  运行程序(不管是Windows Forms还是ASP.NET)。打开Position明细视图。确保Title属性为空并且点击Save按钮。将显示出如下警告信息:

......Windows Forms应用程序:

 

 ......ASP.NET应用程序:

 

此警告信息将在你点击SaveAndClose按钮或者其他将对象保存到数据库中的行为时出现。

·  关闭此警告信息,给Title属性赋值并且点击Save按钮。对象将被成功保存。


我的话:

这个QuickStart的业务模型设计系列总算的翻译完了。不过单这10篇文章相信大家已经能体会出XAF的强大之处了——编程人员只用写业务对象。我觉得这是一种很好的提高生产力的方式,下面的文章我就会针对XAF的内部框架实现进行分析。这个QuickStart其实还有其他的部分,我就不翻译了,大家可以下载文档自己学习。

 

转载于:https://www.cnblogs.com/1231net/archive/2009/11/04/1596067.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/411227.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

注册机patch起什么作用_电机滑环起什么作用?

电机滑环起什么作用?发电机滑环就是我们传统的集电环,用于电机的换向器上作为导出导入电流的滑动接触体,它的导电、导热以及润滑性能良好,并具有一定的机械强度和换向性火花的本能。几乎所有的电机都使用碳刷,它是电机的重要组成…

《Java并发编程的艺术》之synchronized的底层实现原理

在学习锁优化时,对象头(Mark Word) 是必不可缺的一环,因为synchronized 用的锁是存在对象头里的。32位的虚拟机上对象头占64位(8字节),64位的虚拟机上对象头占128位(16字节)[^objectHead];而不同…

文字投影_店铺门口投影灯,引领店铺新潮流

在社会的进步下,现在人们物质生活越来越好,在原来消费的基础上也更加注重消费时店铺的装修、氛围。装修精致、环境优雅的店铺不仅更加容易吸引顾客,并且更加容易让顾客打卡发圈,无形中也帮自己做了一波宣传。上次我们出去游玩的时…

实验5

一、 1 #ifndef MACHINEPETS_H2 #define MACHINEPETS_H3 #include<iostream>4 #include<string>5 using namespace std;6 class MachinePets7 {8 public:9 MachinePets(const string s) :nickname(s) {} 10 virtual string talk()0; 11 string getnick…

计算机网络ieee,博士生程珂论文连续两年被计算机网络顶级会议IEEE INFOCOM录用...

近日&#xff0c;第39届IEEE国际计算机通信会议(IEEE International Conference on Computer Communications, IEEE INFOCOM 2020)录用结果揭晓&#xff0c;陕西省网络与系统安全重点实验室沈玉龙教授课题组博士生程珂的论文《A Lightweight Auction Framework for Spectrum Al…

去除标题_资深运营导师-云中教你轻松写标题

一、标题作用解读标题对于产品的意义买家购买逻辑想到一款产品&#xff0c;并知道他的名称去网上搜索&#xff0c;看到图片等信息类比价格评价等内容&#xff0c;下单收到货和自己根据标题照片评判商品核心要点&#xff1a;买家是根据产品名字作为购买切入点&#xff1b;照片和…

报名学校计算机考试在哪里报,全国计算机等级考试报名流程

全国计算机等级考试报名流程全国计算机等级考试采用全国统一命题&#xff0c;统一考试的形式&#xff0c;各科目均为上机操作考试。1&#xff0e;上网填报基本信息考生可任意选择地点并在规定时间内上网填报、修改及查询本人信息。填报过程分为登录、查看提示信息、输入并提交报…

卸载一直在创建还原点_如何创建系统还原点以及如何恢复?

如何创建系统还原点1、在搜索框中输入“创建还原点”并打开。2、在“系统保护”选项卡中点击“创建”。3、为此次还原点添加备注描述&#xff0c;此处命名为测试&#xff0c;点击创建即可。恢复系统至上一个还原点1、在刚才的“系统保护”界面中点击“系统还原”。2、在弹出的系…

学生党的Surface Pro 5乞丐版使用体验

因为已经装了台式机&#xff0c;大一开学时买的厚重且续航差的华硕游戏本&#xff08;i5GTX950M8G)对我这个考研党已经显得不合适了。恰巧有一同学笔记本坏了&#xff0c;我便将游戏本低价出了&#xff0c;然后用两三倍的价格&#xff0c;入手了surface pro5 (new surface)的最…

2018计算机河北省高考试题,2018年河北高考物理压轴试题【含答案】

2018年河北高考物理压轴试题【含答案】18&#xff0e;如图4所示&#xff0c;由粗细均匀的电阻丝制成的边长为L的正方形金属框向右匀速运动&#xff0c;穿过方向垂直金属框平面向里的有界匀强磁场&#xff0c;磁场宽度d2L。从ab边刚进入磁场到金属框全部穿出磁场的过程中&#x…

富士通01018z平板电脑评测_档案扫描好帮手,富士通ix1500无线双面高速扫描仪评测...

扫描仪是办公中常用的一种设备&#xff0c;尤其是建立了较为完备的档案管理制度的企业和组织&#xff0c;经常需要扫描和存档大量的文稿和图像&#xff0c;下文就介绍一台获得日本Good Design设计奖的无线高速扫描仪——富士通ScanSnap iX1500。打开包装可以看到ScanSnap iX150…

工厂模式 + 反射 ?= 灵活多变的数据库

工厂模式 反射 ? 灵活多变的数据库么 由于现实项目中我们难保会客户会更换系统的数据库&#xff0c;这样我们需要把若干数据库各种情况基本上都想到。多种数据库&#xff0c;引出抽象&#xff0c;我们就能在众多数据库的上层抽出一个Factory&#xff0c;由Factory去引导具体…

中使用swiper不能自动切换_液晶拼接墙显示系统中矩阵切换器使用的注意事项

近年来在液晶拼接墙显示系统中矩阵切换器的使用已变得越来越普遍、这主要是因为各矩阵切换器品牌商根据众多用户的实际需求对矩阵进行了同能扩展与完善。这也使得矩阵切换器除了使用在大屏拼接显示系统外还适用于多媒体会议系统、调度指挥系统、数字化城市建设、安防等工程。而…

计算机的双一流学校,分数不够上双一流大学计算机专业,上这些大学也不错,实力非常强...

有句话说“穷人就学计算机”&#xff0c;为什么会有这种说法呢&#xff1f;学计算机是穷人翻身最快的途径&#xff1f;的确&#xff0c;因为计算机是一项可以不靠人脉、不需要过高的口才的技术性工作。对于穷人来说&#xff0c;无背景无社会资源&#xff0c;只能靠自己&#xf…

Jupyter Notebook 使用小记

简介 Jupyter Notebook 是一款几乎综合所有编程语言&#xff0c;能够把软件代码、计算输出、解释文档、多媒体资源整合在一起的多功能科学计算平台。具有如下优点&#xff1a; 整合所有资源交互性编程体验零成本重现结果安装 本地安装 # python3 python3 -m pip install --upgr…

陕西省高级职称 计算机要求,陕西省卫生高级职称评审申报条件

陕西省卫生高级职称评审申报条件2014年-2015年陕西省卫生高级职称评审申报条件我所经历的陕西省卫生高级职称评审经验谈 贴上一个目前陕西省最权威的晋升高级职称的文件&#xff0c;重点看最后一段我的个人经验。(二)学历资历条件&#xff1a;1、晋升正高级资格&#xff0c;必须…

Django第二篇

django第二篇 1.静态文件配置 接口前缀&#xff1a; ​ STATIC_URL /static/ 跟静态文件夹的名字没有关系&#xff0c;默认情况下这个前缀跟静态文件夹名字一样 文件配置 STATICFILES_DIRS [ ​ os.path.join(BASE_DIR,static) ] static:就是你的静态文件夹路径&#xff0c;可…

html input file name,HTML Input FileUpload name用法及代码示例

name属性用于设置或返回文件上传按钮的name属性的值。名称属性用于在提交到服务器后标识表单数据。用法:返回名称属性&#xff1a;fileuploadObject.name设置名称属性&#xff1a;fileuploadObject.namename属性值&#xff1a;name:指定文件上传按钮的名称。示例1&#xff1a;返…