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

  • 相关阅读:
    C# DataGridView显示行号的三种方法
    jQuery之前端国际化jQuery.i18n.properties
    大龄程序员的未来在何方
    【翻译】HTML5开发——轻量级Web Database存储库html5sql.js
    HBuilder webApp开发 Websql增删改查操作
    JS 互相调用iframe页面中js方法、VUE里 iframe 互调方法
    工具,百度编辑器 UEditor 使用实例化
    html 表格head头部不动 body部分滚动,每格宽同内容增加
    JS 正则收集(邮箱验证等)
    jQuery,title、仿title功能整理
  • 原文地址:https://www.cnblogs.com/linybo/p/13323119.html
Copyright © 2011-2022 走看看