• 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

     作用于持久类时:指定持久类映射的表名称。如果没有指定,默认的表名就是类名。

     作用于propertyfield时:表的列名称。

      参数是表名或列名,是区分大小写的。

            

    [Persistent("CreatedOn")] 

    强制映射字段

    作用于a property or a field

    XPO一般只对持久类中的可写propertypublic 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

    指定主键。每个持久类都需要一个指定为keypropery or fieldXPObjectXPBaseObject的一个明显差别就是XPObject已有一个OId主键

    参数:bool型(可选)。是否由XPO自动生成键值(IntGUID)。默认是false

            

    [Indexed(Unique = true)] // 无重复索引. "[Indexed]" 有重复索引。

     作用于a property or a field

     指定索引。默认情况下改索引是非唯一索引。

     没有构造参数。但可以通过set来设置为唯一索引[IndexedUnique=true]

     [OptimisticLocking(false)] 

    作用于持久类.是否乐观锁定。如果锁定,修改后提交时,XPO会检查原始数据是否已经被改变,而不是who lastest who winXPO在持久类映射的表类加一个系统字段“OptimisticLockField”,显然是用来标记状态的。因此如果是映射到视图时,要显式设置为不锁定。

     参数:bool值(可选,默认是true

    [ValueConverter(typeof(实现转换接口(抽象类ValueConverter)的类))] 

     作用于property

    值和类型转换,挺有意思的一个功能。从数据库提取值和保存值都可以作一个转换工作。

    [NullValue("")]

    作用于简单数据类型的a property or field

    指定对应库中值为null时,持久类中对应的数据。反之也是。

    参数:根据不同的数据类型,引入不同的参数。看例子比较方便:

    public class Example : XPObject {
                  [NullValue(Int32.MinValue)]
                  public int NullOnMinValueFieldInt;
                                 [NullValue(0)]
                  public int NullOnZeroFieldInt;
                  [NullValue("")]
                  public string NullOnEmptyStringFieldString;
                  [NullValue("NULL")]
                  public string NullOnNULLFieldString;
                }
    [ExplicitLoading]
    [MemberDesignTimeVisibility]
  • 相关阅读:
    iOS中的事件传递和响应者链条
    iOS多线程--NSOperation
    Objective-C—— @Property详解
    iOS网络——NSURLCache设置网络请求缓存
    Objective-C—— Block
    iOS多线程——GCD篇
    Objective-C设计模式——中介者Mediator(对象去耦)
    Objective-C设计模式——外观Faced(接口适配)
    Objective-C设计模式——桥接Bridge(接口适配)
    Objective-C设计模式——适配器Adapter(接口适配)
  • 原文地址:https://www.cnblogs.com/Bruce_H21/p/6411550.html
Copyright © 2020-2023  润新知