XAF对Attribute的总结
[Aggregated]
没有参数,作用于a property or a field,并且只能是持久类的引用或者XPCollection.实现两个持久类的级联删除的功能。
[Association("PersonAddresses", typeof (Address))]
作用于a property or a field
实现两个持久类的级联关系
参数:1、关联的名称;2、关联的持久类类型(但引用指明持久类型时,可以省略)
[MapTo("T_Person")]
作用于持久类或a property or a field
作用于持久类时:指定持久类映射的表名称。如果没有指定,默认的表名就是类名。
作用于property或field时:表的列名称。
参数是表名或列名,是区分大小写的。
[Persistent("CreatedOn")]
强制映射字段
作用于a property or a field
XPO一般只对持久类中的可写property和public field进行持久化操作。因此对只读的field可以加上该特性进行强制持久化。
参数:表名(可选)
[NonPersistent]
作用于a class, property or a field
指明不对类或property,field进行持久化操作。
参数无。
[DbType]
指定列创建时使用的数据类型。
参数:字符串的数据类型表示。
[MapInheritance(MapInheritanceType.OwnTable)]
作用于持久类。
两个持久类是继承关系时,持久信息的存储方式。参数:
MapInheritanceType.OwnTable :各自独立的表,分别存储独有部分。
MapInheritanceType.ParentTable :都在父表存储。
[Delayed("document")]
只能作用于Property。
延迟数据装载,当持久类构造时并不装载数据,只是property首次被访问时才装载。
和类XPDelayedProperty结合使用才能实现延迟装载的功能。
参数:引用的XPDelayedProperty 类型field 名称。
[Size(SizeAttribute.Unlimited)]
数据长度
作用范围a property or a field。
指定映射的表字段长度。只是当创建字段时才体现。当字段已经存在,XPO此时不会检查该值。
参数:数值的长度或者SizeAttribute.Unlimited(不限制长度)
可以不指定。如果是string,默认是100。
[Key ] ,[Key(true)],[Key(AutoGenerate = true)]
作用于a property or a field。
指定主键。每个持久类都需要一个指定为key的propery or field。XPObject和XPBaseObject的一个明显差别就是XPObject已有一个OId主键
参数:bool型(可选)。是否由XPO自动生成键值(Int或GUID)。默认是false。
[Indexed(Unique = true)] // 无重复索引. "[Indexed]" 有重复索引。
作用于a property or a field。
指定索引。默认情况下改索引是非唯一索引。
没有构造参数。但可以通过set来设置为唯一索引[Indexed(Unique=true)]
[OptimisticLocking(false)]
作用于持久类.是否乐观锁定。如果锁定,修改后提交时,XPO会检查原始数据是否已经被改变,而不是who lastest who win。XPO在持久类映射的表类加一个系统字段“OptimisticLockField”,显然是用来标记状态的。因此如果是映射到视图时,要显式设置为不锁定。
参数:bool值(可选,默认是true)
[ValueConverter(typeof(实现转换接口(抽象类ValueConverter)的类))]
作用于property。
值和类型转换,挺有意思的一个功能。从数据库提取值和保存值都可以作一个转换工作。
[NullValue("")]
作用于简单数据类型的a property or field。
指定对应库中值为null时,持久类中对应的数据。反之也是。
参数:根据不同的数据类型,引入不同的参数。看例子比较方便:
public class Example : XPObject {
[NullValue(Int32.MinValue)]
public int NullOnMinValueFieldInt;
[NullValue()]
public int NullOnZeroFieldInt;
[NullValue("")]
public string NullOnEmptyStringFieldString;
[NullValue("NULL")]
public string NullOnNULLFieldString;
}
[ExplicitLoading]
[MemberDesignTimeVisibility]
XAF对Attribute的总结的更多相关文章
- XAF应用开发教程-内置Attribute功能列表
在 XAF 框架,一些用来生成一个业务应用程序的信息是在Attribute中指定.您可以将属性应用到业务类 (或它的成员) 指定验证规则,指定如何对数据进行显示. 设置关系类等.本主题提供了有关在何处 ...
- XAF视频教程来啦,已出7课
XAF交流学习群内的兄弟录制了视频,他没有博客,委拖我发至博客园,希望能让更多的开发人员受益.快速开发企业级应用的好工具! XAF入门01快速浏览 XAF入门02特点. XAF入门03 ...
- XAF视频教程来啦,已出15课
第一到第七课在这里: http://www.cnblogs.com/foreachlife/p/xafvideo_1_6.html 视频地址:http://i.youku.com/i/UMTI5OTE ...
- XAF:如何让用户在运行时个性化界面并将个性化信息保存到数据库中 win/web/entityframework/xpo
本主题介绍如何启用管理模型差异(XAFML),并将设置存储在数据库中. 名词解释: 1.模型:XAF中把所有应用程序的结构都用模型来定义,比如列表,有哪些列,名称是什么,对应的字段名是什么,业务对 ...
- [XAF] How to improve the application's performance
[自己的解决方案]数据量大时,可显著提升用户使用体验! 1.Root ListView 参考官方的E1554 点击导航菜单后首先跳出查询条件设置窗体进行设置 可设置查询方案或查询方案的查询条件,排序字 ...
- XAF学习资源整合大全
近期有很多XAF初学者与我联系,我多数时间在重复很多入门问题,所以决定整理一篇XAF资源列表,方便大家查找资料,也请知晓其他资源的人留言或与我联系,我将新资源追加到本篇文章中,方便更多人. 一.本博客 ...
- XAF Excel数据导入模块使用说明与源码
我实现了XAF项目中Excel数据的导入,使用Devexpress 新出的spreadsheet控件,可能也不新了吧:D 好,先看一下效果图:下图是Web版本的. 下面是win版: 功能说明: 支持从 ...
- XAF应用开发教程(七)外观控制模块
很多时候,我们需要按照不同的条件显示不同的效果,在传统的软件开发中,我们会直接使用 控件名称.BackColor,Enable,Visible等属性进行控制. 如果一个业务对象在多处使用,要么我们会去 ...
- 是时候改变你的开发方式了-XAF信息系统快速框架介绍
我是一名.Net开发者,从DOS时代Turbo c 算起(1996年),马上满20年了.想想写过的代码真是不少,却做了很多重复反复的编码工作.当然中间也带过团队做过几个大项目,但是代码仍没写够,还是每 ...
随机推荐
- [转] const T、const T*、T *const、const T&、const T*& 的区别
这里的T指的是一种数据类型,可以是int.long.doule等基本数据类型,也可以是自己类型的类型class.单独的一个const你肯定知道指的是一个常量,但const与其他类型联合起来的众多变化, ...
- Linux ping不通外网
在linux中ping www.baidu.com 无法ping通,可能原因是DNS没配置好 方法一: 修改vi /etc/resolv.conf 增加如下内容: nameserver 114.11 ...
- 7-python自定义opener
Handler处理器 和 自定义Opener opener是 urllib2.OpenerDirector 的实例,我们之前一直都在使用的urlopen,它是一个特殊的opener(也就是模块帮我们构 ...
- linux操作小技巧
巧妙利用别称 alias,让工作更有效率 在我的个人目录下/home/zdwu,打开.bashrc文件进行修改: 将 ll='ls -alF' 改为 ll='ls -ahlF',是的观察的结果显示更 ...
- 利用osmosis导出osm城市数据
转载(未测试) 方法核心就是利用osmosis的导出指定功能,即是从大范围导出小范围的基本用例. 我们只需要知道我们所需要提取的城市的经纬度范围, 例如广州市的经纬度范围是北纬22.26~23.56度 ...
- c#事务的使用、示例及注意事项
什么是数据库事务 数据库事务是指作为单个逻辑工作单元执行的一系列操作. 设想网上购物的一次交易,其付款过程至少包括以下几步数据库操作: · 更新客户所购商品的库存信息 · 保存客户付款信息--可能 ...
- Charles安装证书ssl proxying
1.找到工具栏上方的 help 按钮 2.help下面有一个 ssl proxying的选项,点击ssl proxying 选择里面的第三个:install charles root certific ...
- Orace开源的异步IO编程库,特点是接口非常简单
官网:https://oss.oracle.com/projects/libaio-oracle/,正如标题所说,非常简单了,不用多解释,请直接看头文件,其中aio_poll类似于poll,重要的结构 ...
- MongoDB整理笔记のGUI操作
值得幸运的是,其实MongoDB也有像类似于PL/SQL一样的界面操作工具操作MongoDB. 下面就来介绍几款不同的界面工具,大家各取所需! MongoVUE 主页:http://www.mongo ...
- [转]FreeMarker使用
copy自http://demojava.iteye.com/blog/800204 以下内容全部是网上收集: FreeMarker的模板文件并不比HTML页面复杂多少,FreeMarker模板文件主 ...