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

时间:2016-11-14 17:18:24

标签: asp.net-core entity-framework-core .net-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文件?

1 个答案:

答案 0 :(得分:1)

创建"Microsoft.EntityFrameworkCore.Sqlite": "1.0.1", 命令时考虑了可移植性,因此它也可以在非Windows系统上运行。由于Linux和Mac没有SQLExpress,因此使用SQLite作为数据库创建模板。

所以你需要一个SQLite客户端来打开它。

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

只需替换

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

在project.json中

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

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

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

在Startup.cs中,最后是appsettings.json中的连接字符串

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

使用

pub trait FreqMap {
    type Content;
    type Count;

    fn frequency_map(&self) -> BTreeMap<Self::Content, Self::Count>;
}

impl FreqMap for str {
    type Content = char;
    type Count = usize;

    fn frequency_map(&self) -> BTreeMap<char, usize> {
        let mut freqmap = BTreeMap::new();
        for c in self.chars() {
            *freqmap.entry(c).or_insert(0) += 1;
        }
        freqmap
    }
}