zoukankan      html  css  js  c++  java
  • .net core 连接数据库(通过数据库生成Modell)

    创建数据库

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

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

    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注入到上下文管道中
            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

    例子如下:

    {
      "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的依赖注入

            public Startup(IConfiguration configuration)
            {
                Configuration = configuration;
            }
    

    j

    将这部分代码:

       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));
            }
    

      修改为:

       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

  • 相关阅读:
    select server 于青林
    server client 于青林
    嵌入式系统移植三部曲 于青林
    server-client之间的通信 刘峰
    select注释执行过程 刘峰
    嵌入式系统移植三部曲 刘峰
    select server 李敏敏
    服务器与客户端 李敏敏
    嵌入式移植三步曲 郑明莉
    嵌入式系统移植三步曲 翟长伟
  • 原文地址:https://www.cnblogs.com/Extnet/p/9469647.html
Copyright © 2011-2022 走看看