zoukankan      html  css  js  c++  java
  • Entity Framework Code-First(10):Fluent API

    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 Mapping
    • Set default Schema
    • Set Custom Convetions
    Entity Mapping
    • To Single or Multiple Tables and Schema
    • To Complex type
    • Inheritance Hierarchies
    Property Mapping
    • To 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.

  • 相关阅读:
    python脚本netifaces模块的调用
    Remote Desktop Connection Manager介绍
    svn 分支整个项目合并主干
    C#中的 ref 传进出的到底是什么 解惑篇
    TortoiseSVN 安装中文语言包,SVN中文语言包
    CefSharp开源库的使用(一)
    cef 介绍
    SQL Server2008数据库如何改名
    通过公网连接云数据库Memcache--ECS Windows篇
    微信扫码支付模式一和模式二的区别
  • 原文地址:https://www.cnblogs.com/purplefox2008/p/5644231.html
Copyright © 2011-2022 走看看