您的位置:首页 > 产品设计 > UI/UE

Entity Framework Code-First(10):Fluent API

2016-07-05 16:47 441 查看

Fluent API in Code-First:

We have seen different DataAnnotations attributes in the previous sections to override default Code-First Conventions. Here, we will learn about Fluent API.

Fluent API is another way to configure your domain classes. Fluent API provides more functionality for configuration than DataAnnotations. Fluent API supports the following types of mappings.

MappingsTo Database
Model-wide MappingSet default Schema

Set Custom Convetions

Entity MappingTo Single or Multiple Tables and Schema

To Complex type

Inheritance Hierarchies

Property MappingTo Column, Column Name, Column Type, Nullable or Not Null Column, Column size, Columns Order

To Concurrency column

To Foreign key column

To configure relationships

Let's get started with Fluent API. First of all, let's create Student & Standard domain classes and context class as we have created in the Simple Code-First Example section. Now, override OnModelCreating method of DBContext in a context class, as shown below.

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);
}
}


Now, all your configuration code using Fluent API should be in OnModelCreating method. DbModelBuilder is a main class on which you can configure all your domain classes because at this point, all your domain classes would have initialized.

You can also use DataAnnotation and Fluent API at the same time. Code-First gives precedence to Fluent API > data annotations > default conventions.

DbModelBuilder class includes important properties and methods to configure. Visit MSDN for more information on DbModelBulder class.

Let's start to configure entities using Fluent API in the next section.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: