.net core webapi+EF Coreweb
一.描述:數據庫
EF Core必須下載.net core2.0版本json
Micorsoft.EntityFrameworkCore:EF框架的核心包
Micorsoft.EntityFrameworkCore.SqlServer:針對SqlServer數據庫的擴展,使用SqlServer數據庫必須。相似的還有MySql,SqlLite等
Micorsoft.EntityFrameworkCore.Tools
Micorosft.EntityFrameworkCore.Design:用戶根據現有的數據庫生成模型代碼
Microsoft.EntityFrameworkCore.SqlServer.Design
二.EF安裝:
經過nuget方式:api
1.EF核心庫安裝:app
Install-package Microsoft.EntityFrameworkCore
Install-package Microsoft.EntityFrameworkCore.SqlServer
2.dbfirst須要的庫:
Install-package Microsoft.EntityFrameworkCore.Design Install-package Microsoft.EntityFrameworkCore.Tools Install-package Microsoft.EntityFrameworkCore.SqlServer.Design
三.使用dbfirst方式生成實體及上下文對象:cors
Scaffold-DbContext "Server=.;database=CommonPermission;User ID=sa;Password=123;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models
四.配置:框架
經過上面的生成方式數據庫配置直接在代碼中,這種作法是很差的,應該移動到配置文件中:ide
上下文類屏蔽數據庫鏈接:ui
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) { if (!optionsBuilder.IsConfigured) { #warning To protect potentially sensitive information in your connection string, you should move it out of source code. See http://go.microsoft.com/fwlink/?LinkId=723263 for guidance on storing connection strings. //optionsBuilder.UseSqlServer("Server=.;database=CommonPermission;User ID=sa;Password=123;"); } }
在appsettings.json文件中配置:spa
{ "Logging": { "LogLevel": { "Default": "Warning" } }, "ConnectionStrings": { "SQLConnection": "Server=.;database=CommonPermission;User ID=sa;Password=123;" }, "AllowedHosts": "*" }
在Startup.cs文件中的ConfigureServices方法中注入上下文對象:
//注入上下文對象 services.AddDbContext<CommonPermissionContext>(x => x.UseSqlServer(Configuration.GetConnectionString("SQLConnection")));
接下來的和net framework中的ef方式一致!