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