EntityFramework - Code First - DataAnnotation

.NET中的类提供了一种添加验证的方式。

由命名空间System.ComponentModel.DataAnnotations提供

常用的DataAnnotation特性:

KeyAttribute:对应数据库中的主键

MaxLengthAttribute:对应数据库中字符串类型字段的最大长度

MinLengthAttribute:在数据库中无对应,但在代码中字符串最小长度

ConcurrencyCheckAttribute:指定用于开放式并发检查的列的数据类型

TimestampAttribute:将列的数据类型指定为行版本

EntityFramework程序集中定义了更多的数据映射特性

DatabaseGeneratedAttribute:标记指定实体属性是由数据库生成的,并指定生成策略(None数据库不生成值,Identity当插入行时,数据库生成值,Computed当插入或更新行时,数据库生成值)

ColumnAttribute:指定实体属性在数据库中的列名及数据类型

TableAttribute:指定实体类对应的数据表名

ForeignKeyAttribute:指定导航属性的外键字段

NotMappedAttribute:标记指定实体属性在创建数据库中不创建对应字段

ComplexTypeAttribute:标记指定实体属性是将一个对象作为另一个对象的属性,映射到数据库中则子对象表现为多个属性字段

对于实体关系对应的数据表关系,无非“0:1,1:1,0:N,1:N,N:N”这几种,可以使用导航属性中的数据类型来表示,

0…1端使用单实体类型表示,N端使用ICollection<T>集合类型表示。

对于单实体端,默认是可为空的,即为0关系,如果要设置为1关系,要使用[Required]标签来进行标记。

但对于一对一中的关系主体与依赖对象确无法做更细节的控制。

 

属性应用

Column("") 该成员映射到列的列名  
ComplexType 复杂类型  
ConcurrencyCheck    
DatabaseGenerated    
DataMember    
DefaultValue()    
DisplayName()    
ForeignKey("") 定义外键  
InverseProperty    
Key 定义主键

[Key,DatabaseGenerated(DatabaseGeneratedOption.None)]

[Key,Editable(true),DatabaseGenerated(DatabaseGeneratedOption.None)]

MaxLength() 最大长度  
MinLength() 最小长度  
NotMapped 排除映射  
RegularExpression() 定义正则表达式  
RelatedTo    
Required 不可为空  
StringLength() 字符串长度  
StoreGenerated    
Table("") 定义表名  
Timestamp    
[Index(IsUnique = true)]
   
[HiddenInput]

posted @ 2015-03-06 14:54  `Laimic  阅读(330)  评论(0)    收藏  举报