.net core 链接数据库(经过数据库生成Modell)

建立数据库

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

打开数据库 输入以下代码 建立数据库sql

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数据库

添加ConnectionStringsjson

例子以下:app

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

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

jspa

将这部分代码:设计

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

  修改成:code

   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

相关文章
相关标签/搜索