zoukankan      html  css  js  c++  java
  • (17)ASP.NET Core2.2 EF基于数据模型创建数据库

    1.简介

    使用Entity Framework Core构建执行基本数据访问的ASP.NET Core MVC应用程序。使用迁移(Migrations)基于数据模型创建数据库,你可以在Windows上使用Visual Studio 2017 PowerShell或在Windows、macOS或Linux上使用.NET Core CLI来学习创建数据库。

    2.创建新项目

    2.1系统必备

    在创建新项目之前都要检查是否安装以下软件:
    ●具有以下工作负载的Visual Studio 2017 15.7版或更高版本(Visual Studio必备):
      ○“ASP.NET和Web开发”(位于“Web 和云”下)
      ○“.NET Core跨平台开发”(位于“其他工具集”下)
    ●.NET Core 2.1 SDK.(Visual Studio、CLI必备)

    2.2 创建项目

    Core MVC项目可以通过Visual Studio手动来创建,也可以通过在CLI输入命令行来创建,两者区别是前者限制在Windows平台上创建项目,后者是可以跨平台创建项目。

    2.2.1Visual Studio手动来创建项目

    ●打开Visual Studio 2017
    ●“文件”>“新建”>“项目”。
    ●从左菜单中选择“其他项目类型”>“Visual Studio 解决方案”。
    ●点击新建解决方案右键选择“添加”>“新建项目”>“已安装”>“Visual C#”>“.NET Core” 。
    ●选择“ASP.NET Core Web 应用程序”。
    ●输入“MyCoreWeb”自定义名称,然后单击“确定”。
    ●在“新建ASP.NET Core Web应用程序”对话框中:
      ○确保在下拉列表中选择“.NET Core”和“ASP.NET Core 2.1”
      ○选择“Web 应用程序(模型视图控制器)”项目模板
      ○确保将“身份验证”设置为“不进行身份验证”
      ○单击“确定”
    警告:如果你使用“单独用户帐户”(而不是“无”)进行身份验证,Entity Framework Core模型会添加到ModelsIdentityModel.cs中的项目。

    2.2.2通过在CLI输入命令行来创建项目

    运行以下命令以创建MVC项目:

    dotnet new mvc -n MyCoreWeb

    更改为项目目录,你输入的下一个命令需要针对新项目运行:

    cd MyCoreWeb

    3.安装Entity Framework Core

    要安装EF Core,请为要作为目标对象的EF Core数据库提供程序安装程序包。有关可用提供程序的列表,请参阅数据库提供程序。因为我本机是用SqlServer数据库,所以可以通过以下两种方式安装EF Core。

    3.1在包管理器控制台输入命令来安装程序包(“工具”>“NuGet包管理器”>“程序包管理器控制台”)

    install-package Microsoft.EntityFrameworkCore.SqlServer -Version 2.2.0

    3.2通过在CLI输入命令行来安装程序包

    --更改为项目所在目录
    cd /d D:ProjectMyCoreWeb
    --输入CLI命令安装程序包
    dotnet add package Microsoft.EntityFrameworkCore.SqlServer

    4.创建模型

    在Models文件夹下创建BloggingContext.cs文件,为了简单起见,我们都将Blog、Post实体代码写在BloggingContext.cs文件中:

    public class BloggingContext : DbContext
    {
        public BloggingContext(DbContextOptions<BloggingContext> options): base(options){ }
        public DbSet<Blog> Blogs { get; set; }
        public DbSet<Post> Posts { get; set; }
    }
    public class Blog
    {
        public int BlogId { get; set; }
        public string Url { get; set; }
        public ICollection<Post> Posts { get; set; }
    }
    public class Post
    {
        public int PostId { get; set; }
        public string Title { get; set; }
        public string Content { get; set; }
        public int BlogId { get; set; }
        public Blog Blog { get; set; }
    }

    5.使用依赖注入注册上下文

    在应用程序启动过程中,通过依赖关系注入注册服务(如 BloggingContext),以便能够通过构造函数的参数和属性向使用服务的组件(如 MVC 控制器)自动提供该服务。如果想要在MVC控制器里面调用BloggingContext.cs,那么就要在Startup.cs中将其注册为服务。

    public void ConfigureServices(IServiceCollection services)
    {
        var connection = @"Server=.;Database=Blogging;Trusted_Connection=True;ConnectRetryCount=0";
        services.AddDbContext<BloggingContext>(options => options.UseSqlServer(connection));
    }

    为简单起见,这里把连接字符串直接在代码中定义。但是通常是会将连接字符串放在配置文件或环境变量中。例如:

    appsettings.json
    {
      "Logging": {
        "LogLevel": {
          "Default": "Warning"
        }
      },
      "AllowedHosts": "*",
      "ConnectionStrings": {
        "BloggingDatabase": "Server=.;Database=Blogging;Trusted_Connection=True;"
      }
    } 

    Startup.cs中其注册的服务代码为:

    public void ConfigureServices(IServiceCollection services)
    {
        services.AddDbContext<BloggingContext>(options =>
        options.UseSqlServer(Configuration.GetConnectionString("BloggingDatabase")));
    }

    6.迁移创建数据库(重点)

    这个章节比较重要,下面让我们来学习下如何迁移创建数据库。

    6.1Visual Studio PowerShell手动来创建项目(“工具”>“NuGet包管理器”>“程序包管理器控制台”)

    Add-Migration InitialCreate
    Update-Database

    如果收到错误,指出The term 'add-migration' is not recognized as the name of a cmdlet,请关闭并重新打开Visual Studio。
    Add-Migration命令为迁移搭建基架,以便为模型创建一组初始表。Update-Database命令创建数据库并向其应用程序新的迁移。
    因为程序包管理器不支持PowerShell 2.0版本的迁移,需要升级到3.0版本,所以这里就暂时演示不了,请大家自行升级3.0或以上版本测试。

    或者收到这样错误,无法将“Add-Migration”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。

    请在PowerShell输入如下命令行:Import-Module C:Users用户名.nugetpackagesmicrosoft.entityframeworkcore.tools3.1.0 oolsEntityFrameworkCore.psd1,再执行如上命令即可。

    6.2通过在CLI输入命令行来迁移

    --更改为项目所在目录
    cd /d D:ProjectMyCoreWeb
    --迁移搭建基架
    dotnet ef migrations add InitialCreate
    --创建数据库并向其应用程序新的迁移
    dotnet ef database update

    下面我们来看看迁移创建数据库效果:


    参考文献:
    使用新数据库在ASP.NET Core上开始使用EF Core

  • 相关阅读:
    云计算和大数据时代网络技术揭秘(八)数据中心存储FCoE
    云计算和大数据时代网络技术揭秘(七)大二层网络
    云计算和大数据时代网络技术揭秘(六)LISP协议
    云计算和大数据时代网络技术揭秘(五)可靠的网络
    云计算和大数据时代网络技术揭秘(四)网络加密
    云计算和大数据时代网络技术揭秘(三)安全的网络准入
    python3练习100题——027
    python3练习100题——026
    python3练习100题——025
    python3练习100题--024
  • 原文地址:https://www.cnblogs.com/wzk153/p/11376869.html
Copyright © 2011-2022 走看看