저는 프로젝트에서 Entity Framework 코드를 처음으로 사용하고 있습니다. 이러한 마이그레이션 중 하나는 프로젝트의 디렉토리에있는 csv
파일의 데이터를 읽음으로써 데이터베이스 테이블을 채 웁니다. 이 프로젝트 구조는 다음과 같습니다EF 마이그레이션 스크립트에서 디렉토리 경로를 찾는 가장 좋은 방법은 무엇입니까?
public override void Up()
{
var migrationsDir = AppDomain.CurrentDomain.BaseDirectory + "/Migrations/CSVFolder/"; // For some reason, Path.Combine() doesn't work for me here so I manually concatenate the strings.
var templateFiles = Directory.GetFiles(migrationsDir, "*.csv");
foreach (var filename in templateFiles)
{
Sql(); // SQL Insert statement here.
}
}
이 내 dev에 컴퓨터에서 잘 실행하지만 때 내가 테스트 서버에이를 배포 :
내Up()
방법에서
- Soulution
- Project
- Migrations
- CSVFolder
- file1.csv
- file2.csv
- Migration1.cs
- Migration2.cs
, 나는 이러한 파일과 같이 얻을 ': \ 문어 \ 응용 프로그램 \ 1.1 alpha21 \ 마이그레이션 \ CSVFolder \ 테스트 \ 솔루션 C'문어, 나는 경로 의 일부를 찾을 수 없습니다
예외
찾을 수없는 경로를 얻을.
'drop'폴더를 확인한 결과 Migrations > CSVFolder
이 포함되어 있습니다.
나는 여러 가지 방법으로 폴더 경로를 얻으려고했지만 로컬 또는 서버에서 작동합니다. 로컬 및 서버에서 모두 작동하는 경로를 얻는 가장 좋은 방법은 무엇입니까?
"원하는 위치에 도달 할 때까지 보유한 디렉토리의 수를 확인해야합니다."- 정확하게 말해서 문제가되는 문입니다. 정직하게 리소스로 포함시키려는 것이 아니지만 두 시나리오 모두에서 올바르게 구현할 수있는 최선의 방법이라고 생각됩니다. 지금은'Directory.GetDirectories (AppDomain.CurrentDomain.BaseDirectory, "CSVFolder") [0]'을 사용하여 문제를 해결했습니다. 이것은 작동하지만 'CSVFolder'라는 이름의 디렉토리가 여러 개 없을 것이라고 가정합니다. –