2

내 질문의 제목과 관련하여 도움이 필요할 수 있습니다. 여기에 자세한 내용이 있습니다.Visual Studio 2017에서 EF Core를 사용하여 마이 그 레이션 전/후에 mdf 파일의 로컬 데이터베이스 기본 위치를 변경하십시오.

VS2015에서 코드 첫 번째 마이그레이션을 사용하여 데이터베이스를 만들 때 첫 번째 마이그레이션을 완료 한 후 App_Data 폴더로 이동하여 MDF 파일을 클릭하여 VS에서 데이터베이스를 볼 수있었습니다. 그러면 서버 탐색기에서 열립니다.

그러나 VS2017에서는 더 이상 App_Data 폴더가 없으며 첫 번째 마이그레이션을 수행했을 때 내 MDF 파일의 위치를 ​​찾는 데 약간의 작업이 필요했습니다. 추가 마이그레이션 및 업데이트 데이터베이스를 수행 한 후

:

당신이 모르는 경우

내가 그것을 찾는 데 사용하는 단계입니다.

이동은 appsettings.json 연결 문자열에 표시해야합니다 당신 (localdb) 데이터베이스의 \ MSSQLLocalDB-> Databases-> 이름을 SQL 서버보기에서 SQL 서버 개체 탐색기>

를보기 -합니다. 아마도 aspnet- [db name] - [숫자와 문자의 집합]

이 데이터베이스를 마우스 오른쪽 버튼으로 클릭하여 속성으로 이동했습니다. "현재 연결 매개 변수"에서 MDF 파일의 경로입니다. ":/사용자/사용자 이름 C"

내가 다른 기본 위치로 설정 어떻게 그래서 내 질문은

현재 위치는? 내 MDF 파일을 데이터 폴더 나 내 프로젝트 폴더에있는 것과 비슷한 것으로 표시하고 싶습니다.

이 질문이있는 경우. 나는 누군가가 이미 물어 본지 알아보기 위해 약 20 번 내 질문을 다시 써 보았습니다. 나는이 질문이 이미 나에게 친숙하지 않은 방식으로 요청 되었다면이 질문을 빨리 제거 할 것이다.

+0

. 모든 것이 새로운 위치에 나타나야합니다.나는 오스틴을 대답으로 받아 들였는데 왜냐하면 그는 또한 선택한 위치에서 새로운 연결을하는 법을 설명했기 때문입니다. – vgwizardx

답변

2

엔티티 프레임 워크 코어의 경우 엔 좀 더 복잡합니다. Visual Studio (또는 Sql Management Studio)에서 SQL Server Object Explorer으로 db를 열고 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(); 
     } 
    } 
} 

그래도 같은 서버를 사용하고 있지만 원하는 폴더에 데이터베이스를 배치 할 수 있습니다.

행동

: 나는 또한 당신이 연결을 새 위치 사용 서버 탐색기에 기존 데이터베이스의 MDF 파일을 이동 한 다음 appsettings.json 및 새로 고침에 서버 탐색기에서 연결 문자열을 복사 할 수있는 추가합니다 enter image description here

+0

나는 뭔가를 놓친다는 것을 알았다. EF 코어를 사용하고 있습니다. EF Core에서이 작업을 수행하는 방법을 알고 있습니까? – vgwizardx

+0

업데이트 된 답변으로 편집 됨 –

+0

감사의 말을 전합니다. 시도해 볼 기회를 얻었을 때 감사합니다. 모든 것이 제대로 작동하면 답변이 표시됩니다 .--). – vgwizardx

관련 문제