• .net core EFcore model生成数据


    创建数据库

    (扫盲贴还劳烦大神们勿喷,谢谢)

    打开数据库 输入如下代码 创建数据库

    复制代码
    CREATE DATABASE [Blogging];
    GO
    
    USE [Blogging];
    GO
    
    CREATE TABLE [Blog] (
        [BlogId] int NOT NULL IDENTITY,
        [Url] nvarchar(max) NOT NULL,
        CONSTRAINT [PK_Blog] PRIMARY KEY ([BlogId])
    );
    GO
    
    CREATE TABLE [Post] (
        [PostId] int NOT NULL IDENTITY,
        [BlogId] int NOT NULL,
        [Content] nvarchar(max),
        [Title] nvarchar(max),
        CONSTRAINT [PK_Post] PRIMARY KEY ([PostId]),
        CONSTRAINT [FK_Post_Blog_BlogId] FOREIGN KEY ([BlogId]) REFERENCES [Blog] ([BlogId]) ON DELETE CASCADE
    );
    GO
    
    INSERT INTO [Blog] (Url) VALUES
    ('http://blogs.msdn.com/dotnet'),
    ('http://blogs.msdn.com/webdev'),
    ('https://www.cnblogs.com/Extnet/')
    GO
    复制代码

    添加所需要DLL

    复制代码
    “工具”>“NuGet 包管理器”>“包管理器控制台”
    Install-Package Microsoft.EntityFrameworkCore.SqlServer //我们将使用一些 Entity Framework Tools 从数据库创建模型。 因此,我们也会安装此工具包:
    Install-Package Microsoft.EntityFrameworkCore.Tools
    我们稍后将使用一些 ASP.NET Core 基架工具来创建控制器和视图。 因此,我们也会安装此设计包: Install-Package Microsoft.VisualStudio.Web.CodeGeneration.Design
    复制代码

    逆向生成数据库模型

    Scaffold-DbContext "Server=.;Database=Blogging;Trusted_Connection=True;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models
    //输出目录 -OutputDir Models
    //选中的table -Tables Blog,Post
    如果收到错误 The term 'Scaffold-DbContext' is not recognized as the name of a cmdlet 请关闭并重新打开 Visual Studio。
    如果收到错误 Build failed.  请查看一下错误列表,一般重新生成一下再运行上面的命令就ok了。
     

    在 Startup.cs 中注册并配置上下文

    • 删除dbcontext中的OnConfiguring方法
    • 打开Stratup.cs
    • 并且引用以下DLL
    • using 你的类库名.Models;
    • using Microsoft.EntityFrameworkCore;
    • 修改Stratup.cs 中的 如下内容并且将DbContext注入到上下文管道中
    1
    2
    3
    4
    5
    6
    7
    8
    public void ConfigureServices(IServiceCollection services)
    {
     
        services.AddMvc();
     
        var connection = @"Server=(localdb)mssqllocaldb;Database=Blogging;Trusted_Connection=True;ConnectRetryCount=0";
        services.AddDbContext<BloggingContext>(options => options.UseSqlServer(connection));
    }

    创建一个基于Model的controller

    数据库连接字符串放入配置文件中

    打开appsettings.json

    添加ConnectionStrings

    例子如下:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    {
      "ConnectionStrings": {
        "DefaultConnection""server=.;uid=sa;pwd=*********;Database=******;Trusted_Connection=True;MultipleActiveResultSets=true"
      },
      "Logging": {
        "IncludeScopes"false,
        "Debug": {
          "LogLevel": {
            "Default""Warning"
          }
        },
        "Console": {
          "LogLevel": {
            "Default""Warning"
          }
        }
      }
    }

    打开Startup.cs

      输入以下代码
    • using Microsoft.Extensions.Configuration;
    • using Microsoft.Extensions.DependencyInjection;

    添加configuration的依赖注入

    1
    2
    3
    4
    public Startup(IConfiguration configuration)
    {
        Configuration = configuration;
    }

    j

    将这部分代码:

    1
    2
    3
    4
    5
    6
    7
    8
    public void ConfigureServices(IServiceCollection services)
         {
     
             services.AddMvc();
     
             var connection = @"Server=(localdb)mssqllocaldb;Database=Blogging;Trusted_Connection=True;ConnectRetryCount=0";
             services.AddDbContext<BloggingContext>(options => options.UseSqlServer(connection));
         }

      修改为:

    1
    2
    3
    4
    5
    6
    7
    8
    public void ConfigureServices(IServiceCollection services)
         {
     
             services.AddMvc();
     
             var connection =  Configuration.GetConnectionString("DefaultConnection");
             services.AddDbContext<BloggingContext>(options => options.UseSqlServer(connection));
         }

      

    好了,通过appsettings.json获取数据库连接到这里就ok了。

    还需要什么玩意的!麻烦点个赞然后留个言!中不中!?

    参考文献

    https://docs.microsoft.com/zh-cn/ef/core/get-started/aspnetcore/existing-db 微软官方

    https://docs.microsoft.com/zh-cn/aspnet/core/fundamentals/dependency-injection?view=aspnetcore-2.1 依赖注入

    后记

    创建了一个QQ群希望有志之士可以加一下 点击链接加入群聊【.Net Core研究团】:https://jq.qq.com/?_wv=1027&k=5298dNv

  • 相关阅读:
    2.17NOIP模拟赛(by hzwer) T2 小奇的序列
    2.17NOIP模拟赛(by hzwer) T1 小奇挖矿
    题解【洛谷P3662】[USACO17FEB]Why Did the Cow Cross the Road II S
    题解【CF886B】Vlad and Cafes
    题解【CJOJ1070/UVA】嵌套矩形
    题解 【CF381A】 Sereja and Dima
    何时使用UI层的智能表单技术
    开机加电到系统打开究竟发生了什么?(1)
    asp.net MVC 常见安全问题及解决方案
    HDU 4422 The Little Girl who Picks Mushrooms【水题】
  • 原文地址:https://www.cnblogs.com/BoKeYuan259/p/10532999.html
Copyright © 2020-2023  润新知