![](/img/trans.png)
[英]How to establish SQL Connection in Visual Studio using local mdf file
[英]Visual Studio 2017 using EF Core change local database default location for mdf file before/after migration
我的問題標題可能需要幫助。 所以這里有更多細節。
在 VS2015 中,我使用代碼優先遷移創建數據庫時,完成第一次遷移后,我可以通過轉到 App_Data 文件夾並單擊 MDF 文件來查看 VS 中的數據庫。 然后它將在服務器資源管理器中打開。
但是,在 VS2017 中,我不再有 App_Data 文件夾,當我進行第一次遷移時,需要做一些工作才能找出我的 MDF 文件所在的位置。
如果你不知道這里是我用來定位它的步驟:
完成添加遷移和更新數據庫后。
轉到查看-> SQL Server 對象資源管理器
在 SQL Server 下查找您 (localdb)\\MSSQLLocalDB->Databases->您的數據庫名稱應顯示在您的 appsettings.json 連接字符串中。 可能以aspnet-[db name]-[一堆數字和字母]開頭
我右鍵單擊此數據庫並轉到屬性。 在“當前連接參數”下是 MDF 文件的路徑。
當前位置是“C:/user/username”
所以我的問題是如何將其設置為不同的默認位置? 我希望我的 MDF 文件顯示在 Data 文件夾或我的項目文件夾中的類似內容中。
如果有人問過這個問題。 很抱歉,我嘗試將我的問題改寫大約 20 次,以弄清楚是否有人已經問過了。 如果已經以我不熟悉的方式提出了這個問題,我會迅速刪除這個問題。
好的,所以對於 Entity Framework Core,它涉及更多。 您可以在 Visual Studio(或 Sql Management Studio)中的SQL Server Object Explorer
中打開您的數據庫,並使用 SQL 查詢在您想要的位置創建數據庫。
create database test on (name='test', filename='c:\Projects\test.mdf');
然后像通常在連接字符串中那樣使用 (LocalDb) 引用它:
appsettings.json
{
"ConnectionStrings": {
"DefaultConnection": "Server=(localdb)\\mssqllocaldb;Database=test;Trusted_Connection=True;MultipleActiveResultSets=true"
}
}
然后這個測試正確運行
程序.cs
using System;
using System.IO;
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Configuration;
namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello World!");
var builder = new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("appsettings.json", optional: false, reloadOnChange: true);
IConfigurationRoot configuration = builder.Build();
var optionsBuilder = new DbContextOptionsBuilder();
optionsBuilder.UseSqlServer(configuration.GetConnectionString("DefaultConnection"));
var context = new DbContext(optionsBuilder.Options);
context.Database.EnsureCreated();
}
}
}
因此,您仍在使用同一台服務器,但您將數據庫放置在所需的文件夾中。
您必須在連接字符串中使用AttachDbFileName ,例如:
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder.UseSqlServer(connectionString: @"data source=.;AttachDbFileName=d:\data\yourDBname.mdf ;initial catalog=yourDBname;persist security info=True;user id=sa;password=1234;MultipleActiveResultSets=True;App=EntityFramework");
base.OnConfiguring(optionsBuilder);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.