Reza kavian Ответов: 2

Как создать базу данных в другом месте вместо того, чтобы C:\users\USER в ASP.NET ядро 2.2


I want to create database in a folder in my project, but by default the database is created in C:\Users\USER.

This is my appsetting.json :


"Соединительные нити": {
"MvcMusicStoreContext":
"Server=(localdb)\\mssqllocaldb;Database=MvcMusicStoreContext;Trusted_Connection=True;MultipleActiveResultSets=true"

}
How to change database location to another folder in my computer. I use asp.net core 2.2 in Visual Studio 2017


Что я уже пробовал:

I use asp.net core 2.2 in Visual Studio 2017

Richard MacCutchan

Используйте полный путь, а не только имя файла в строке подключения.

Reza kavian

Можете ли вы привести мне пример того, как это сделать?

2 Ответов

Рейтинг:
4

Reza kavian

я меняю ConnectionStrings с помощью AttachDBFileName:

"ConnectionStrings": {<br />
    "MvcMusicStoreContext":<br />
    "Server=(localdb)\\MSSQLLocalDB;AttachDBFilename=[DataDirectory]\\App_Data\\MvcMusicStoreContext.mdf;Trusted_Connection=True;MultipleActiveResultSets=true"<br />
  }

и в ConfigureServices при запуске:

string path = Directory.GetCurrentDirectory(); <br />
<br />
  services.AddDbContext<MvcMusicStoreContext>(options =><br />
                  options.UseSqlServer(Configuration.GetConnectionString("MvcMusicStoreContext")<br />
                  .Replace("[DataDirectory]",path)));


Рейтинг:
1

Richard MacCutchan

Если вы используете (localdb) обозначение после этого файл будет сохранен в папке по умолчанию, как описано в разделе Создание строки подключения и работа с SQL Server LocalDB | Microsoft Docs[^]. Другие варианты см. В разделе Строки подключения SQL Server для ASP.NET веб-приложения | Microsoft Docs[^].