如何連接到ASP.NET Core的WebApplication.db數據庫?

.net-core asp.net-core entity-framework-core

我正在試驗ASP.NET Core並用它創建了一個新的Web應用程序(MVC)站點:

git init CoreWebApp
cd CoreWebApp
dotnet new -t web
dotnet restore

代碼引導後,我運行了初始的EF遷移

dotnet ef database update

此時,將在./bin/Debug/netcoreapp1.0/WebApplication.db生成一個數據庫,該站點將運行並允許用戶註冊並成功登錄。我想通過SSMS,LINQPad或其他標準SQL客戶端連接到該數據庫,但遇到了麻煩。 “打開文件”提示通常會查找.mdf擴展名並抱怨.db文件。

如何從SQL客戶端連接到ASP.NET Core,EF生成的WebApplication.db文件?

一般承認的答案

dotnet new命令在創建時考慮了可移植性,因此它也可以在非Windows系統上運行。由於Linux和Mac沒有SQLExpress,因此使用SQLite作為數據庫創建模板。

所以你需要一個SQLite客戶端來打開它。

當然,您可以自由地替換任何支持EntityFramework Core的提供程序,例如SQLServer。

只需更換

"Microsoft.EntityFrameworkCore.Sqlite": "1.0.1",

在你的project.json中

"Microsoft.EntityFrameworkCore.SqlServer": "1.0.1",

services.AddDbContext<ApplicationDbContext>(options =>
    options.UseSqlite(Configuration.GetConnectionString("DefaultConnection")));

services.AddDbContext<ApplicationDbContext>(options =>
    options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));

在Startup.cs中,最後是appsettings.json中的連接字符串

"ConnectionStrings": {
  "DefaultConnection": "Data Source=WebApplication.db"
},

隨著

"ConnectionStrings": {
  "DefaultConnection": "Server=.\SQLExpress;AttachDbFilename=C:\MyFolder\MyDataFile.mdf;Database=dbname;Trusted_Connection=Yes;"
}


Related

許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow