EntityFramework Code-First 简易教程-------领域类配置之Fluent API

Posted 大兵不是饼

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了EntityFramework Code-First 简易教程-------领域类配置之Fluent API相关的知识,希望对你有一定的参考价值。

Fluent API配置:

前面我们已经了解到使用DataAnotations特性来覆写Code-First默认约定,现在我们来学习Fluent API。

Fluent API是另一种配置领域类的方法,它比DataAnnotations特性提供更多的配置方法,下表是Fluent API支持的类型映射。

映射种类配置数据库
模型(Model-wide)映射
  • 设置默认架构
  • 设置自定义约定
实体(Entity)映射
  • 设置单表或多表和设置架构
  • 设置复杂类型
  • 设置继承层次结构
属性(Property)映射
  • 设置列,列名、类型、是否可空、大小、排序
  • 设置并发列
  • 设置外键列
  • 配置关系

下面,我们开始使用Fluent API来配置领域类。

我们首先创建Student和Standard两个领域类,同样也创建出DbContext类,DbContext类中有个OnModelCreating方法,这里我们在它的继承类中把它覆写出来。

代码如下:

public class SchoolContext: DbContext 
{
    public SchoolDBContext(): base() 
    {
    }

    public DbSet<Student> Students { get; set; }
    public DbSet<Standard> Standards { get; set; }
        
    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        //Configure domain classes using modelBuilder here

        base.OnModelCreating(modelBuilder);
    }
}

使用Fluent API配置领域类时,所有的配置代码都要写在OnModelCreating方法里面,所有的领域类都可以在这个方法里面写上他们的初始化代码。程序初始化的时候,DataAnnotation和Fluent API的优先级是:Fluent API > DataAnnotations > 默认约定。

DbModelBuilder类包含了重要的用于配置的属性和方法,更多详情请翻阅MSDN文档。

接下来我们详细讲一些常用的Fluent API配置方法。(未完待续)

 

以上是关于EntityFramework Code-First 简易教程-------领域类配置之Fluent API的主要内容,如果未能解决你的问题,请参考以下文章

EntityFramework优缺点

EntityFramework 7 更名为EntityFramework Core(预发布状态)

EntityFramework codefirst

解决适用EntityFramework生成时报错“无法解析依赖项。"EntityFramework 6.4.4" 与 ' EntityFramework.zh-Hans 6

EntityFramework 开始小试

EntityFramework Code First 添加唯一键