.Net Core 已經出到 3.1 了
目前為止有稍微碰過一些,但遇到 EF 的部分一直都沒有認真去研究,
在寫.Net Framework 的時候,EF 6.0 只要輕鬆的用滑鼠點一點,就可以把 EDMX 建起來。
什麼 Context 什麼 DbConnection 我才不管呢~ (被養壞了)
但在.Net Core 這方面就稍微微微的硬派了一點,要下指令呢。
首先,先安裝 Nuget 套件 如下:
打開[套件管理器主控台]
輸入下列指令,將資料庫結構建立至指定路徑下:
Scaffold-DbContext
-Connection "Server=(localdb)\mssqllocaldb;Database=Blogging;Trusted_Connection=True;"
Microsoft.EntityFrameworkCore.SqlServer
-OutputDir Models
-context BloggingContext
-Project FirstWeb
其中 OutputDir 是要將自動生成的 Model 放在哪一個路徑下
下面是範例將192.168.100.01的遠端資料庫 TestDB 加入的指令
Scaffold-DbContext "Data Source=192.168.100.01;Initial Catalog=TestDB;User ID=Test;Password=***********" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models\Entities
跑完之後會出現下列訊息
然後所有的Table都會建立一個 cs 檔在指定的路徑下方,並建立一個繼承 DbContext 的 TestDbContext .
若要更新資料結構則在跑一次同樣語法,後面加上 -Force
Scaffold-DbContext "Data Source=192.168.100.01;Initial Catalog=TestDB;User ID=test;Password=********" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models\Entities -Force
若是要更新指定資料表,則加入-Table tableName
Scaffold-DbContext "Data Source=192.168.100.01;Initial Catalog=TestDB;User ID=test;Password=********" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models\Entities -Tables Member -Force
接著要去Startup.cs 去設定連線,有點類似於 Net Framework 的 WebCongig 設定資料庫連線
public void ConfigureServices(IServiceCollection services)
{
services.AddControllersWithViews();
var connection = "Data Source=192.168.100.01;Initial Catalog=TestDB;User ID=Test;Password=********";
services.AddDbContext<TestDBContext>(options => options.UseSqlServer(connection));
}
接著就可以去使用資料庫了
---
參考:http://ikevin.tw/2019/08/04/asp-net-core-3-0-%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8-database-first/
如有指正之處,歡迎隨時提出