.Net EntityFramework 注解大全
Posted シ゛甜虾
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了.Net EntityFramework 注解大全相关的知识,希望对你有一定的参考价值。
EFCodeFirst使用的约定大于配置的的编程模式, 这种模式利用默认约定根据我们的领域模型建立概念模型。然我们可以用配置领域来覆盖默认约定。覆盖默认约定主要有两种手段:
1、数据注解属性。
2、FluentAPI。
常用的数据注解属性
Key | 数据库中对应为主键 |
TimeStamp | 数据库中对应类型为timestamp类型,主要用于解决高并发问题。注:一个类只能用一次,且修饰的属性必须为byte[]类型 |
ConcurrencyCheck | 数据库中对应列为进行乐观并发检测,主要用于检测高并发问题 |
Required | 属性不能为空,数据库中对应列不能空 |
MinLength/MaxLength | 属性和数据库中最大和最小String长度 |
架构属性
Schema | 配置实体对应的数据库架构名 |
Table | 配置实体类对应的表名 |
Column | 用于配置实体类中的属性,配置属性对应的数据库列名,顺序和数据类型 |
ForeignKey | 用于属性,指定属性为一个外键 |
NotMapped | 用于实体或者属性,不在数据库中生成映射 |
DataBaseGernerated | 用于属性,设置数据库对应列值的生成,如identity,computed或者none |
例子
namespace DADemo
{
[Table("KProduct",Shema="MyProduct")]//数据库名称为MyProduct.KProduct
public class Product
{
[Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]//默认是将Id或者ClassNameId作为主键。通过[key]可以自定义主键,Identity自增,None不自增
public int PId { get; set; }
[Required]//属性不能为空
[Column("ProductName")]
[MaxLength(50,ErrorMessage ="字段长度不得大于50"),MinLength(2)]//当程序中此字段保存时长度超过50时,程序会报错
public string Name { get; set; }
[Column("ListPrice", Order=1,TypeName = "Money")]//映射到数据库中的ListPrice列,并且对应类型是Money,列的顺序是1,order从0开始
public int Price { get; set; }
[NotMapped]//数据库中没有对应的映射列
public decimal SPrice { get; set; }
[Index("CategoryIndex",IsUnique = true)]//索引名称为CategoryIndex的唯一索引,直接使用[Index]时索引名词IX_Category.
[ForeignKey("CateId")]//指定外键属性
public string Category { get; set; }
[Required]//属性不能为空
[DatabaseGenerated(DatabaseGeneratedOption.Computed)]
public DateTime Created { get; set; }
1632906236//在update操作时,包含在where子句中
public byte[] RowVersion{get;set;}
}
}
以上是关于.Net EntityFramework 注解大全的主要内容,如果未能解决你的问题,请参考以下文章