.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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM