創建數據庫
(掃盲貼還勞煩大神們勿噴,謝謝)
打開數據庫 輸入如下代碼 創建數據庫
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