Code First中属性列的限制

1. KeyAttribute

 设置该列为数据库中映射的主键,一般情况下系统会默认将带有 “ID” 或者 “属性+ID”的形式的属性设置为主键(如果有多个此种形式的属性,需要指定主键)

2. StringLengthAttribute 

 设置该属性用于验证的最大长度和最小长度,以及提示的信息,在向数据库中进行映射时,会将最大的长度保存到数据库设计中

3. MaxLengthAttribute

 设置该属性的最大长度,会将此数值映射到数据库的设计中

4. ConcurrencyCheckAttribute

 修改或者删除时,会将此属性和主键一并传递到数据库中,如果传递的值和数据库中不一致,则删除和修改失败(一般用于解决并发检查问题)

5. RequiredAttribute

 限制该属性值不能为空,并且在数据库的设计中会出现 not null

6. ComplexTypeAttribute

 是将一个对象作为另一个对象的属性进行标记,如下:

 1     public class Book
 2     {
 3         public int BookId { get; set; }
 4         public string BookTitle { get; set; }       
 5         public Publisher Publisher { get; set; }
 6 
 7     }
 8     [ComplexType]
 9     public class Publisher
10     {        
11         public string PublisherName { get; set; }
12         public string PublisherAddress { get; set; }
13     }

 如此以来Publisher对象中的所有属性都将映射到 Book 这个对象中了,生成的数据库表 book中将有 Publisher中的所有列

7. ColumnAttribute

 指定每一个属性的名称(将在数据库中映射之后的数据库字段名称)

8. TableAttribute

 指定表名,只需要给这个类加上这个标记即可,代表这个类在数据库中映射之后的名称

9. Identity

 设置自增长列,一般情况下如果主键为int类型的话,系统会自动设置为自增长列,只有在非主键想要设置为自增长时需要添加此特性

10. None

  用于不将主键设置为自增长的列

11. Computed

 不让实体框架更新这些列,一般用于默认值的列

12. NotMappedAttribute

 不映射到数据库中,一般用于获取数据库中的字段设置一个值

13 DateCreated 

 向数据库中定义一个不可为空的dateTime,但是一般情况下在数据库中的值还是可以为空的

注意:如果需要在数据库表创建的时候,或者添加数值时需要给定默认值,可以在初始化函数中进行值的设定

 

猜你喜欢

转载自www.cnblogs.com/ztgong/p/9384627.html