• EF6 Code First 博客学习记录


    学习一下ef6的用法 这个学习过程时按照微软官网的流程模拟了一下 就按照下面的顺序来写吧

    1.连接数据库  自动生成数据库

    2.数据库迁移

    3.地理位置以及同步/异步处理(空了再补)

    4.完全自动迁移(空了再补)

    下面就是具体内容介绍

    A.连接数据库  自动生成数据库(Code First)

    第一步:新建控制台项目CodeFirstNewDatabaseSample 使用nuget管理包下载ef6 appconfg中添加数据库连接字符串

     点击下载之后会有弹窗点击我接受  然后vs自动开始下载

     接下来配置连接字符串  打开app.config 将连接字符串如下:

    <connectionStrings>
    <add name="EFDbContext" connectionString="data source=.;initial catalog=CodeFirstDemo;user id=sa;password=******;Connect Timeout=15;Encrypt=False;TrustServerCertificate=False" providerName="System.Data.SqlClient" />
    </connectionStrings>

    复制进去

     接下来 创建模型

     接下来创建上下文  这里代码写好之后需要引用命名空间  using System.Data.Entity;

    这里需要注意一点 如果你的数据库上下文类的名字和链接字符串名字相同 那么vs会自动匹配

    加入不希望两者一样(字符串命名和类名命名规则不一定一样嘛)  那么你需要继承构造函数并且传参如下图:

     这里我就用不一样的吧 如果你的连接字符串和类名称一致  直接去掉这个构造函数就行了

    接下来 读取/写入数据

    main方法中添加如下代码

    using (var db = new EF6DbContext())
    {
    // Create and save a new Blog
    Console.Write("Enter a name for a new Blog: ");
    var name = Console.ReadLine();

    var blog = new Blog { Name = name };
    db.Blogs.Add(blog);
    db.SaveChanges();

    // Display all Blogs from the database
    var query = from b in db.Blogs
    orderby b.Name
    select b;

    Console.WriteLine("All blogs in the database:");
    foreach (var item in query)
    {
    Console.WriteLine(item.Name);
    }

    Console.WriteLine("Press any key to exit...");
    Console.ReadKey();
    }

    好了 准备工作完成  直接运行项目看结果

    输入一个姓名张无忌

    查看数据库 已经被自动创建 并且里面表拥有数据张无忌

    到这里自动创建数据库就已经成功了 接着看如何实现数据库迁移

    B数据库迁移

     假设现在类Blog需要添加一个字段url 

    点击nuget包管理器控制台

     初始化结束后 输入enable-migrations 按下回车

    vs自动生成了一个文件夹 里面有两个类

    这里这两个类是实现迁移用的  202004080425245_InitialCreate类是时间戳+字符串命名的  具体有什么用就是一个记录 用来前进后退数据库操作的 就不深究了

    接下来在控制台输入add-migration addurl   按下回车

    表示我们这次操作时添加一个字段  字段为url  addurl 这个名称你可以自己随便取

    生成一个类似的类 表示这次操作

    接下来再控制台输入update-database 表示应用挂起的迁移  说人话就是将已经准备好的实体变化更新到数据库去

    更新前:

     输入update-database  按下回车

    更新后:

    多了一列 结束。

    有时候会遇到一个问题 可能项目已经发布 所以不可能在已经发布的系统里面去打开nuget控制管理器做update

    因此  这里需要一个自动迁移

    这次增加一个新的字段叫访问次数 VisitNum

    首先在模型中添加字段VisitNum  这里就不截屏了

    接下来上下文的构造函数中添加下面这行代码  这个就是用来应用挂起的迁移

    需要引用命名空间:

    using CodeFirstNewDatabaseSample.Migrations;

    继续控制台输入命令 add-migration addvistnum 回车

    这次不用update-database命令 直接启动程序

    启动完成

    查看数据库

     已经更新 

    这个博客主要是自己学习记录的 如果有不对的地方或请大家提出意见 共同学习 

  • 相关阅读:
    cmd 进入不同的驱动盘及上下级目录
    子网/ip/子网掩码
    虚拟化技术与"云"
    OSI 7层模型
    第一天的CI笔记
    在本地Apache服务器配置虚拟主机站点
    phpmailer 发送邮件
    mysql 中执行的 sql 注意字段之间的反向引号和单引号
    手动部署LNMT(Nginx+Tomcat)并实现Nginx反向代理Tomcat
    JS 创建元素的三种方法
  • 原文地址:https://www.cnblogs.com/yagamilight/p/12659618.html
Copyright © 2020-2023  润新知