• 3、使用DB first创建上下文并生成数据库表


    一、使用Code First创建数据库

    1、创建模型:在Model文件夹下创建UserInfo类和ImageSwiper类

        public class UserInfo
        {
            [Key]
            public string openid { get; set; }
            public string session_key { get; set; }
            public string nickName { get; set; }
            public string avatarUrl { get; set; }
            public int gender { get; set; }
            public string province { get; set; }
            public string city { get; set; }
            public string country { get; set; }
    
        }
        public class ImageSwiper
        {
            [Key]
            public int id { get; set; }
    
            [MaxLength(500)]
            public string src { get; set; }
        }

    2、添加上下文

         在Repository文件夹中添加DemoContext类,继承DbContext,添加using System.Data.Entity的引用

         将实体类添加到Dbset

        public class DemoContext : DbContext
        {
            /// <summary>
            /// 使用“codefirst”连接字符串。根据实际情况修改连接字符串,更多写在Web.config的连接字符串中
            /// </summary>
            public DemoContext()
                    : base("data source=127.0.0.1;initial catalog=Demo;user id=sa;password=1234")
            {
            }
    
            /// <summary>
            /// code first默认生成的表名会加上s,这段代码生成的数据表名不带s
            /// </summary>
            /// <param name="modelBuilder"></param>
            protected override void OnModelCreating(DbModelBuilder modelBuilder)
            {
                modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
            }
    
            /// <summary>
            /// 实体类型添加到 DbSet
            /// </summary>
            public virtual DbSet<UserInfo> UserInfo { get; set; }
            public virtual DbSet<ImageSwiper> ImageSwiper { get; set; }
        }

     如果使用连接字符串写在Web.config中,注意name一致

            public DemoContext()
                    : base("name=conStr")
            {
            }
    
    
    <!-- Webconfig中的<configuration>节点下增加二级节点<connectionStrings>: -->
    

    <connectionStrings> <add name="conStr" connectionString="data source=127.0.0.1;initial catalog=Demo;user id=sa;password=1234" providerName="System.Data.SqlClient"/> </connectionStrings>

    3、在Home控制器中,实例化上下文,运行,自动生成Demo数据库,并生成UserInfo表和ImageSwiper表,

        public class HomeController : Controller
        {
            DemoContext db = new DemoContext();  //实例化上下文
    
            public ActionResult Index()
            {
                db.UserInfo.ToList(); //
                db.ImageSwiper.ToList(); //  
    return View();
    }
    }

    4、生成数据库、查看数据库

    二、更新数据库,数据库迁移。

          1、工具-》NuGet包管理器=》程序包管理控制台

    2、控制台中执行下列命令:

        1)、Enable-Migrations -Force

                 生成一个文件夹Migrations文件夹,里面存放数据库迁移产生的文件

        2)、Add-Migration Initial

                 添加数据模型到数据库,只有写进数据库上下文中的表才会执行创建操作,这一步只是创建了执行的语句,并没有执行。

        3)、Update-Database

                 执行最新数据库迁移文件,即上条语句生成的执行语句。

    3、数据迁移注意事项

         1)、只有首次执行数据迁移需要执行Enable-Migrations命令,之后再执行就不需要了。

         2)、如果出现函数声明中缺少函数体、或“无法将xxx项识别为 cmdlet、函数、脚本文件或可运行程序的名称。”,等警告,注意查看是否是Windows PowerShell版本过低。参阅:如何升级PowerShell,网址:https://blog.csdn.net/u011159607/article/details/90258395

  • 相关阅读:
    kali一些基础工具
    Yii2引入css和js文件
    My97DatePicker日期插件
    Yii2助手函数
    yii2相关前台组件
    yii2之DetailView小部件
    关于SQL_MODE的那些事
    Yii2 RBAC
    ORM介绍
    ASCII码
  • 原文地址:https://www.cnblogs.com/shiliumu/p/14727457.html
Copyright © 2020-2023  润新知