zoukankan      html  css  js  c++  java
  • 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>

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

    就是这么多!

    ***********转摘:https://www.cnblogs.com/duanyong/p/5023313.html

  • 相关阅读:
    素数路径Prime Path POJ3126 素数,BFS
    Fliptile POJ3279 DFS
    Find the Multiple POJ1426
    洗牌Shuffle'm Up POJ3087 模拟
    棋盘问题 POJ1321 DFS
    抓住那只牛!Catch That Cow POJ3278 BFS
    Dungeon Master POJ2251 三维BFS
    Splitting into digits CodeForce#1104A
    Ubuntu下手动安装Nvidia显卡驱动
    最大连续子序列和
  • 原文地址:https://www.cnblogs.com/linybo/p/13323119.html
Copyright © 2011-2022 走看看