实体框架使用一组约定来建立基于实体类的形状的模型。您可以指定额外的配置以补充和/或重写通过公约所发现的东西。
本文涵盖的配置,可以应用到一个针对任何数据存储的模型并且当正针对任何数据库时这配置能被应用。供应商也可以启用特定于某个特定数据存储区的配置。对于提供特定于提供程序特定配置的文档看Database Providers部分。
在这一节中,您可以找到有关下列情况的约定和配置的信息:
包括和不包括类型
包括和不包括属性
键(主要的)
生成的属性
需要的/可选属性
最大值
并发标记
阴影属性
关系
索引
替换键
继承
支持字段
关系数据库建模
表映射
列映射
数据类型
主键
默认架构
计算列
序列
默认值
索引
外键约束
替换键(唯一约束)
继承(关系数据库)
小窍门:
你能看这文章的样本在GitHub上
配置方法
流畅的API
你可以重写OnModelCreating方法在派生的上下文和使用ModelBuilder API来配置你的模型。这是最强大的配置方法,并允许指定的配置,而不修改您的实体类。Fluent API配置有最高的优先级,并将重写约定和数据注释。
class MyContext : DbContext
{
public DbSet<Blog> Blogs { get; set; }
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<Blog>()
.Property(b => b.Url)
.IsRequired();
}
}
数据注解
您也可以将属性(称为数据注释)应用到您的类和属性中。数据注释将覆盖约定,但将由Fluent API配置覆盖。
public class Blog
{
public int BlogId { get; set; }
[Required]
public string Url { get; set; }
}
浙公网安备 33010602011771号