[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的总结的更多相关文章

  1. XAF应用开发教程-内置Attribute功能列表

    在 XAF 框架,一些用来生成一个业务应用程序的信息是在Attribute中指定.您可以将属性应用到业务类 (或它的成员) 指定验证规则,指定如何对数据进行显示. 设置关系类等.本主题提供了有关在何处 ...

  2. XAF视频教程来啦,已出7课

        XAF交流学习群内的兄弟录制了视频,他没有博客,委拖我发至博客园,希望能让更多的开发人员受益.快速开发企业级应用的好工具!   XAF入门01快速浏览   XAF入门02特点. XAF入门03 ...

  3. XAF视频教程来啦,已出15课

    第一到第七课在这里: http://www.cnblogs.com/foreachlife/p/xafvideo_1_6.html 视频地址:http://i.youku.com/i/UMTI5OTE ...

  4. XAF:如何让用户在运行时个性化界面并将个性化信息保存到数据库中 win/web/entityframework/xpo

    本主题介绍如何启用管理模型差异(XAFML),并将设置存储在数据库中.   名词解释: 1.模型:XAF中把所有应用程序的结构都用模型来定义,比如列表,有哪些列,名称是什么,对应的字段名是什么,业务对 ...

  5. [XAF] How to improve the application's performance

    [自己的解决方案]数据量大时,可显著提升用户使用体验! 1.Root ListView 参考官方的E1554 点击导航菜单后首先跳出查询条件设置窗体进行设置 可设置查询方案或查询方案的查询条件,排序字 ...

  6. XAF学习资源整合大全

    近期有很多XAF初学者与我联系,我多数时间在重复很多入门问题,所以决定整理一篇XAF资源列表,方便大家查找资料,也请知晓其他资源的人留言或与我联系,我将新资源追加到本篇文章中,方便更多人. 一.本博客 ...

  7. XAF Excel数据导入模块使用说明与源码

    我实现了XAF项目中Excel数据的导入,使用Devexpress 新出的spreadsheet控件,可能也不新了吧:D 好,先看一下效果图:下图是Web版本的. 下面是win版: 功能说明: 支持从 ...

  8. XAF应用开发教程(七)外观控制模块

    很多时候,我们需要按照不同的条件显示不同的效果,在传统的软件开发中,我们会直接使用 控件名称.BackColor,Enable,Visible等属性进行控制. 如果一个业务对象在多处使用,要么我们会去 ...

  9. 是时候改变你的开发方式了-XAF信息系统快速框架介绍

    我是一名.Net开发者,从DOS时代Turbo c 算起(1996年),马上满20年了.想想写过的代码真是不少,却做了很多重复反复的编码工作.当然中间也带过团队做过几个大项目,但是代码仍没写够,还是每 ...

随机推荐

  1. Spark,一种快速数据分析替代方案

    原文出处:http://www.ibm.com/developerworks/library/os-spark/ Spark 是一种与 Hadoop 相似的开源集群计算环境,但是两者之间还存在一些不同 ...

  2. Dubbo管理中心部署

    我们在开发时,需要知道注册中心都注册了哪些服务,以便我们开发和测试.我们可以通过部署一个管理中心来实现.其实管理中心就是一个web应用,部署到tomcat即可. 管理端的部署: 1,首先我们要编译源码 ...

  3. ./run.sh --indir examples/demo/ --outdir examples/results/ --vis

    (AlphaPose20180911) luo@luo-ThinkPad-W540:AlphaPose$ ./run.sh --indir examples/demo/ --outdir exampl ...

  4. c语言解二元二次方程组

    设a和b是正整数 a+b=30 且a*b=221 求a和b的值 思路就是穷举a和b的值,每次得到a和b的一个值,看是否同时满足a+b=30且a*b=221,如果满足,那么就输出. 那么a和b的的取值范 ...

  5. Django开发——集成的子框架django.contrib

    Django开发——集成的子框架django.contrib 2018年09月11日 19:32:42 Mrkang1314 阅读数:63  https://blog.csdn.net/mashaok ...

  6. win7,64bit下的OpenGL着色语言(glsl)开发环境配置(原)

    一.环境准备: 系统环境win7,64位,双显卡:集成显卡+gt540m,gt540建议下载最新的驱动,可以支持到opengl4.3标准,一般双显的笔记本,程序默认启用的是集显,我机器的集显驱动有点老 ...

  7. linux学习2--目录结构

    根据FHS(http://www.pathname.com/fhs/)的官方文件指出, 他们的主要目的是希望让使用者可以了解到已安装软件通常放置于那个目录下, 所以他们希望独立的软件开发商.操作系统制 ...

  8. HTML总结之:HTML5的DOCTYPE 与 meta 属性介绍

    HTML5头部常用介绍: [DOCTYPE html] 声明文档类型为HTML5文件.   [meta标签] <meta> 元素可提供有关页面的元信息(meta-information), ...

  9. linux内存监控 free

    free 命令详解: 执行命令后总共四行. 第一行: 列头 第二行: total 内存总数: 32881776 used 已经使用的内存数: 8324796 free 空闲的内存数: 24556980 ...

  10. [Lua快速了解一下]Lua的控制语句

    -Lua中没有++或者--的骚操作 -while loop sum = num = do sum = sum + num num = num + end print("sum =" ...