如何连接到 ASP.NET Core 的 WebApplication.db 数据库?

How can I connect to ASP.NET Core's WebApplication.db database?

我正在试验 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 客户端连接到该数据库,但遇到了麻烦。 "open file" 提示通常会查找 .mdf 扩展名并抱怨 .db 文件。

如何从 SQL 客户端连接到 ASP.NET 核心,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")));

in Startup.cs 最后是 appsettings.json

中的连接字符串
"ConnectionStrings": {
  "DefaultConnection": "Data Source=WebApplication.db"
},

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