- 大站做内链小站做外链
- RequiredFieldValidator空值检验点击返回时不想检验怎做
- 长尾关键词拓展方法总结
- 百度百科SEO研究
- mssql与mysql的有什么区别
- 独立IP主机如何实现屏蔽域名恶意解析问题
- 五级三阶制介绍
- 新站要做的准备
- 小程序收货地址报错chooseAddress:fail the api need to be declared in the requiredPrivateInfos field inapp.json
- 反单引号`有啥用
邮箱:
手机:15383239821
ASP.NET Core EFCore 属性配置
属性配置
实体属性配置是定义模型与数据库映射的核心,EFCore 提供两种方式:数据注解和 Fluent API
1. 数据注解(Data Annotations)
通过特性(Attributes)直接在实体类上声明配置,适合简单场景。
public class Product{
[Key] // 主键
public int Id { get; set; }
[Required, MaxLength(100)] // 非空且最大长度100
public string Name { get; set; }
[ForeignKey("CategoryId")] // 外键
public int CategoryId { get; set; }
public Category Category { get; set; }
}
常用注解:
[Key]:主键
[Required]:非空约束
[MaxLength(length)]:最大长度
[ForeignKey]:外键关系
[Table("TableName")]:自定义表名
2. Fluent API
在 DbContext 的 OnModelCreating 方法中配置,提供更灵活的方式。
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<Product>(entity =>{
entity.HasKey(p => p.Id); // 主键
entity.Property(p => p.Name)
.IsRequired()
.HasMaxLength(100);
entity.HasOne(p => p.Category) // 一对一/多关系
.WithMany(c => c.Products)
.HasForeignKey(p => p.CategoryId);
});
}
常用配置方法:
HasKey():定义主键
Property().IsRequired():非空约束
HasIndex():创建索引
HasOne().WithMany():配置导航关系
优势:
集中管理配置,避免污染实体类。
支持复杂配置(如复合主键、继承映射)。
- 上一篇:三层结构中efcore中配置类属于哪一层
- 下一篇:抽象类和接口区别
-
2023-08-26thinkphp常用语法
-
2023-04-24几个seo基础知识
-
2010-07-20中文分词 一篇关于中文分词算法的SEO必看文章
-
2010-08-11时间段timespan的一些解释跟用法
-
2020-07-29一个好的网店运营需要具备哪些能力
-
2013-05-03ASP.NET中使用Eval()函数绑定数据时,不能使用IF进行逻辑判断的解决方案
