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>

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

    就是这么多!

  • 相关阅读:
    linux shell习题
    The logback manual #02# Architecture
    The logback manual #01# Introduction
    算法导论(第三版)练习 10.1-1 ~ 10.1-7
    算法笔记 #006# 快速排序 × 算法导论(第三版)练习 7.1-1 ~ 7.1-4
    Linux笔记 #08# shell编程从零开始到低配学生管理系统
    Maven笔记 #01# 入门
    Java日志学习资料收集
    jsp中用EL读取了数据库里面的时间,怎么设置格式显示的格式
    ajax异步处理时,如何在JS中获取从Servlet或者Action中session,request
  • 原文地址:https://www.cnblogs.com/duanyong/p/5023313.html
Copyright © 2011-2022 走看看