網站首頁 編程語言 正文
1.簡介
使用Entity Framework Core構建執行基本數據訪問的ASP.NET Core MVC應用程序。使用遷移(Migrations)基于數據模型創建數據庫,你可以在Windows上使用Visual Studio 2017 PowerShell或在Windows、macOS或Linux上使用.NET Core CLI來學習創建數據庫。
2.創建新項目
2.1系統必備
在創建新項目之前都要檢查是否安裝以下軟件:
●具有以下工作負載的Visual Studio 2017 15.7版或更高版本(Visual Studio必備):
? ○“ASP.NET和Web開發”(位于“Web 和云”下)
? ○“.NET Core跨平臺開發”(位于“其他工具集”下)
●.NET Core 2.1 SDK.(Visual Studio、CLI必備)
2.2 創建項目
Core MVC項目可以通過Visual Studio手動來創建,也可以通過在CLI輸入命令行來創建,兩者區別是前者限制在Windows平臺上創建項目,后者是可以跨平臺創建項目。
2.2.1Visual Studio手動來創建項目
●打開Visual Studio 2017
●“文件”>“新建”>“項目”。
●從左菜單中選擇“其他項目類型”>“Visual Studio 解決方案”。
●點擊新建解決方案右鍵選擇“添加”>“新建項目”>“已安裝”>“Visual C#”>“.NET Core” 。
●選擇“ASP.NET Core Web 應用程序”。
●輸入“MyCoreWeb”自定義名稱,然后單擊“確定”。
●在“新建ASP.NET Core Web應用程序”對話框中:
? ○確保在下拉列表中選擇“.NET Core”和“ASP.NET Core 2.1”
? ○選擇“Web 應用程序(模型視圖控制器)”項目模板
? ○確保將“身份驗證”設置為“不進行身份驗證”
? ○單擊“確定”
警告:如果你使用“單獨用戶帳戶”(而不是“無”)進行身份驗證,Entity Framework Core模型會添加到Models\IdentityModel.cs中的項目。
2.2.2通過在CLI輸入命令行來創建項目
運行以下命令以創建MVC項目:
dotnet new mvc -n MyCoreWeb
更改為項目目錄,你輸入的下一個命令需要針對新項目運行:
cd MyCoreWeb
3.安裝Entity Framework Core
要安裝EF Core,請為要作為目標對象的EF Core數據庫提供程序安裝程序包。有關可用提供程序的列表,請參閱數據庫提供程序。因為我本機是用SqlServer數據庫,所以可以通過以下兩種方式安裝EF Core。
3.1在包管理器控制臺輸入命令來安裝程序包(“工具”>“NuGet包管理器”>“程序包管理器控制臺”)
install-package Microsoft.EntityFrameworkCore.SqlServer -Version 2.2.0
3.2通過在CLI輸入命令行來安裝程序包
--更改為項目所在目錄 cd /d D:\Project\MyCoreWeb --輸入CLI命令安裝程序包 dotnet add package Microsoft.EntityFrameworkCore.SqlServer
4.創建模型
在Models文件夾下創建BloggingContext.cs文件,為了簡單起見,我們都將Blog、Post實體代碼寫在BloggingContext.cs文件中:
public class BloggingContext : DbContext { public BloggingContext(DbContextOptionsoptions): base(options){ } public DbSet Blogs { get; set; } public DbSet Posts { get; set; } } public class Blog { public int BlogId { get; set; } public string Url { get; set; } public ICollection Posts { get; set; } } public class Post { public int PostId { get; set; } public string Title { get; set; } public string Content { get; set; } public int BlogId { get; set; } public Blog Blog { get; set; } }
5.使用依賴注入注冊上下文
在應用程序啟動過程中,通過依賴關系注入注冊服務(如 BloggingContext),以便能夠通過構造函數的參數和屬性向使用服務的組件(如 MVC 控制器)自動提供該服務。如果想要在MVC控制器里面調用BloggingContext.cs,那么就要在Startup.cs中將其注冊為服務。
public void ConfigureServices(IServiceCollection services) { var connection = @"Server=.;Database=Blogging;Trusted_Connection=True;ConnectRetryCount=0"; services.AddDbContext(options => options.UseSqlServer(connection)); }
為簡單起見,這里把連接字符串直接在代碼中定義。但是通常是會將連接字符串放在配置文件或環境變量中。例如:
appsettings.json { "Logging": { "LogLevel": { "Default": "Warning" } }, "AllowedHosts": "*", "ConnectionStrings": { "BloggingDatabase": "Server=.;Database=Blogging;Trusted_Connection=True;" } }
Startup.cs中其注冊的服務代碼為:
public void ConfigureServices(IServiceCollection services) { services.AddDbContext(options => options.UseSqlServer(Configuration.GetConnectionString("BloggingDatabase"))); }
6.遷移創建數據庫(重點)
這個章節比較重要,下面讓我們來學習下如何遷移創建數據庫。
6.1Visual Studio PowerShell手動來創建項目(“工具”>“NuGet包管理器”>“程序包管理器控制臺”)
Add-Migration InitialCreate Update-Database
如果收到錯誤,指出The term 'add-migration' is not recognized as the name of a cmdlet,請關閉并重新打開Visual Studio。
Add-Migration命令為遷移搭建基架,以便為模型創建一組初始表。Update-Database命令創建數據庫并向其應用程序新的遷移。
因為程序包管理器不支持PowerShell 2.0版本的遷移,需要升級到3.0版本,所以這里就暫時演示不了,請大家自行升級3.0或以上版本測試。
或者收到這樣錯誤,無法將“Add-Migration”項識別為 cmdlet、函數、腳本文件或可運行程序的名稱。
請在PowerShell輸入如下命令行:Import-Module C:\Users\用戶名\.nuget\packages\microsoft.entityframeworkcore.tools\3.1.0\tools\EntityFrameworkCore.psd1,再執行如上命令即可。
6.2通過在CLI輸入命令行來遷移
--更改為項目所在目錄 cd /d D:\Project\MyCoreWeb --遷移搭建基架 dotnet ef migrations add InitialCreate --創建數據庫并向其應用程序新的遷移 dotnet ef database update
下面我們來看看遷移創建數據庫效果:
原文鏈接:https://www.cnblogs.com/wzk153/p/11376869.html
相關推薦
- 2022-05-20 Node-Red 初始編寫第一條數據流Hello world
- 2022-04-17 axios token失效刷新token怎么重新請求_Token 刷新并發處理解決方案
- 2022-05-23 Python學習之時間包使用教程詳解_python
- 2023-04-24 Android布局控件View?ViewRootImpl?WindowManagerService關
- 2022-06-21 Git基礎之git與SVN版本控制優缺點區別分析_其它綜合
- 2022-10-17 一文教會你用nginx+uwsgi部署自己的django項目_python
- 2022-11-05 一文教你如何使用Databinding寫一個關注功能_Android
- 2022-04-04 Kotlin中協程的創建過程詳析_Android
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支