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 Generated WebApplication.dbファイルにどのように接続すればよいですか?

受け入れられた回答

dotnet newコマンドは移植性を考慮して作成されるため、Windows以外のシステムでも実行できます。 LinuxおよびMac用のSQLExpressは存在しないため、データベースとしてSQLiteを使用してテンプレートが作成されます。

だからあなたはそれを開くためにSQLiteクライアントが必要です。

もちろん、SQLServerのようなEntityFramework Coreをサポートするプロバイダであれば、自由に置き換えることができます。

ただ置き換える

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

あなたのプロジェクトで.json with

"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
このKBは合法ですか? はい、理由を学ぶ
ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ