【问题标题】:How can I connect to ASP.NET Core's WebApplication.db database?如何连接到 ASP.NET Core Web Application.db 数据库?
【发布时间】:2016-11-15 01:47:37
【问题描述】:

我正在试验 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 文件?

【问题讨论】:

  • .db是 SQLite 而不是 SQL Server
  • 啊,我认为(没有明显原因)这仅在 Linux 主机上。所以我应该可以通过指向数据库文件来连接任何 SQLite 客户端,嗯?
  • 是的。 (该死的 12 个字符限制)

标签: asp.net-core entity-framework-core .net-core


【解决方案1】:

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;"
}

【讨论】:

    猜你喜欢
    • 2018-07-16
    • 1970-01-01
    • 1970-01-01
    • 2017-05-18
    • 1970-01-01
    • 2018-09-22
    • 1970-01-01
    • 2021-05-19
    • 2017-07-21
    相关资源
    最近更新 更多