.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 注解大全的主要内容,如果未能解决你的问题,请参考以下文章

[转]Spring 注解大全与详解

Spring使用的注解大全和解释

spring注解大全

SpringBoot注解大全(转)

spring boot 注解大全

Spring使用的注解大全和解释