Entity Framework基于C#的POCO型类,加上一组约定来创建并配置EF模型。
所谓的模型,反应到数据库就是:
- 模型类对应数据库里的一张表
- 模型类里的属性字段对应的表里的一个列
- 附加在模型类里的所有约定是表的一些配置(比如:主键、必选、最大长度等等)
NO.1 创建模型
public class Blog
{
public int BlogId { get; set; }
[Required]
public string Url { get; set; }
}
正如上图所示,创建模型其实就和创建一个类是一样一样的,上面是一个最简单的模型,反应到数据库就是:
- 表名:Blog
- 字段:BlogId(类型int)、Url(类型:varchar)
- 约定:Url是必填项
NO.2 配置模型
所谓配置模型,就是给模型附加各种条件,诸如:表中的某个字段是主键、某个字段是必选的、哪个字段的最大长度是多少等等之类。
而配置模型有下列两种方法:
1. 使用 fluent API 配置模型
可在DbContext上下文类中继承OnModelCreating
方法,然后使用它ModelBuilder
去配置你的模型类。
class MyContext : DbContext
{
public DbSet Blogs { get; set; }
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity()
.Property(b => b.Url)
.IsRequired();
}
}
2. 使用注解来配置模型
为了方便管理,EF提供了使用注解来配置模型,但注解配置的约定优先级是低于fluent API
的,所以,当fluent API
与注解的配置冲突时,以fluent API
为准。
public class Blog
{
public int BlogId { get; set; }
[Required]
public string Url { get; set; }
}