• DbContext 那些事 —— 数据库初始化


    数据库初始化

    上图,这个图解释了,数据库初始化的流程,是基于我们在上下文类中的构造函数中传递的参数。

    在上面的图中,context类中的base构造器中,可以填入下面的参数:

    • 无参数(No Parameter)
    • 数据库的名字(Database Name)
    • 连接字符串的名字(Connection String Name)

    无参数


     1 using System;
     2 using System.Collections.Generic;
     3 using System.Data.Entity;
     4 using System.Linq;
     5 using System.Text;
     6 using System.Threading.Tasks;
     7 
     8 namespace EF1
     9 {
    10    public class DbContextClass:DbContext
    11     {
    12        public DbContextClass()
    13            : base()
    14        { }
    15        public DbSet<Student> Studnets { get; set; }
    16 
    17        public DbSet<Standard> Standards { get; set; }
    18 
    19        
    20        protected override void OnModelCreating(DbModelBuilder modelBuilder)
    21        {
    22            Database.SetInitializer(new DropCreateDatabaseIfModelChanges<DbContextClass>());
    23 
    24            base.OnModelCreating(modelBuilder);
    25        }
    26 
    27     }
    28 }

    生成数据库:

    数据库的名字


    你同样可以指定数据库的名字在base构造器中,例如:

     1 using System;
     2 using System.Collections.Generic;
     3 using System.Data.Entity;
     4 using System.Linq;
     5 using System.Text;
     6 using System.Threading.Tasks;
     7 
     8 namespace EF1
     9 {
    10    public class DbContextClass:DbContext
    11     {
    12        public DbContextClass()
    13            : base("MYDBHAHA")
    14        { }
    15        public DbSet<Student> Studnets { get; set; }
    16 
    17        public DbSet<Standard> Standards { get; set; }
    18 
    19        
    20        protected override void OnModelCreating(DbModelBuilder modelBuilder)
    21        {
    22            Database.SetInitializer(new DropCreateDatabaseIfModelChanges<DbContextClass>());
    23 
    24            base.OnModelCreating(modelBuilder);
    25        }
    26 
    27     }
    28 }

    然后生成的数据库是:

    连接字符串


    using System;
    using System.Collections.Generic;
    using System.Data.Entity;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace EF1
    {
       public class DbContextClass:DbContext
        {
           public DbContextClass()
               : base("ConnectionString") //或者你也可以这样 : base("name=ConnectionString")
           { }
           public DbSet<Student> Studnets { get; set; }
    
           public DbSet<Standard> Standards { get; set; }
    
           
           protected override void OnModelCreating(DbModelBuilder modelBuilder)
           {
               Database.SetInitializer(new DropCreateDatabaseIfModelChanges<DbContextClass>());
    
               base.OnModelCreating(modelBuilder);
           }
    
        }
    }

    然后在web.config中加入连接字符串:

    1 <connectionStrings>
    2     <add name="ConnectionString" connectionString="server=.;database=EFCodeFirstDB;uid=sa;pwd=Password_1" providerName="System.Data.SqlClient"/>
    3 </connectionStrings>

    运行程序,在数据库管理工具中就生成了我们想要的数据库:

    就是这么多!

  • 相关阅读:
    POJ 1930 Dead Fraction (循环小数-GCD)
    AOJ 0005 GCD and LCM
    POJ 2395 Out of Hay (Kruskal)
    AOJ 2224 Save your cats (Kruskal)
    POJ 2377 Bad Cowtractors (Kruskal)
    POJ 1258 Agri-Net (Prim&Kruskal)
    AOJ 2200 Mr. Rito Post Office (floyd+DP)
    AOJ 2249 Road Construction (dijkstra)
    调用html进行android布局
    jsp生成静态html页面
  • 原文地址:https://www.cnblogs.com/duanyong/p/5023313.html
Copyright © 2020-2023  润新知