深入了解EntityFramework——数据注解属性

本文介绍了如何使用数据注解属性在EntityFramework中自定义数据库模型,包括复合主键的设置、外键(ForeignKey)的指定以及乐观并发控制(ConcurrencyCheck)的实现。示例展示了在CodeFirst中覆盖默认约定的方法,如使用Key和Column创建复合主键,以及在 FOREIGN KEY 属性上应用 `[ForeignKey]` 注解以明确外键关系。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

当惯例规则不符合设计需求时,我们可以使用数据注解配置打造更合适的数据库模型。本文根据示例项目对常用的数据注解属性做一个简要的举例说明。

EFCodeFirst使用的约定大于配置的的编程模式, 这种模式利用默认约定根据我们的领域模型建立概念模型。然我们可以用配置领域来覆盖默认约定。覆盖默认约定主要有两种手段:

1、数据注解属性

2、FluentAPI

常用的数据注解属性
Key 数据库中对应为主键
TimeStamp 数据库中对应类型为timestamp类型,主要用于解决高并发问题。注:一个类只能用一次,且修饰的属性必须为byte[]类型
ConcurrencyCheck 数据库中对应列为进行乐观并发检测,主要用于检测高并发问题
Required 属性不能为空,数据库中对应列不能空
MinLength/MaxLength 属性和数据库中最大和最小String长度


 

架构属性
Schema 配置实体对应的数据库架构名
Table 配置实体类对应的表名
Column 用于配置实体类中的属性,配置属性对应的数据库列名,顺序和数据类型
ForeignKey 用于属性,指定属性为一个外键
NotMapped 用于实体或者属性,不在数据库中生成
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值