복붙노트

[SQL] 어디 | DataDirectory를 | 한정된?

SQL

어디 | DataDirectory를 | 한정된?

이것은 내 시스템에서 해당 파일 인 경우의 문제까지 후속입니까?

질문과 답변 모든 것을 SO 및 인터넷하지만이 특정 질문에 대한 답을 제공하는 하나를 찾을 수 없습니다의 톤.

모든 기본입니다하지만 파일 자체를 찾을 수 없습니다,

어디 / 취득 방법 | DataDirectory를 | 한정된?

파일이 저장되는 경우, 심지어는 존재 하는가? 그렇지 않다면, 무슨 일이야?

. 편집 : 파일 AppDomain.CurrentDomain.GetData ( "DataDirectory를")에 있지 ToString (); 모든 (sqattered) 답변은해야 말해. 내가 모델을 변경하면 모델에 대해 잔소리 디버거 나누기 테이블을 unequals 그것은 어딘가에 있어야합니다. 그것은이 아니다.

해결법

  1. ==============================

    1.| DataDirectory를 | 그 자체 파일이 아닙니다. 이 오히려 오래된 MSDN 문서에서 인용 (자세한 내용은 전체 기사를 읽기) :

    | DataDirectory를 | 그 자체 파일이 아닙니다. 이 오히려 오래된 MSDN 문서에서 인용 (자세한 내용은 전체 기사를 읽기) :

    스키마 불일치에 대한 추가적인 인용 :

  2. ==============================

    2.| DataDirectory를 | 알고리즘은 내부 System.Data.Common.DbConnectionOptions 클래스에서, 조립체가 system.data.dll에 위치한다. https://github.com/Microsoft/referencesource/blob/e458f8df6ded689323d4bd1a2a725ad32668aaec/System.Data.Entity/System/Data/EntityClient/DbConnectionOptions.cs : 여기가 아니라 (이것은 참조 소스 저장소에서 사용할 수의 소스를 참고 ILSpy으로 표시 ) :

    | DataDirectory를 | 알고리즘은 내부 System.Data.Common.DbConnectionOptions 클래스에서, 조립체가 system.data.dll에 위치한다. https://github.com/Microsoft/referencesource/blob/e458f8df6ded689323d4bd1a2a725ad32668aaec/System.Data.Entity/System/Data/EntityClient/DbConnectionOptions.cs : 여기가 아니라 (이것은 참조 소스 저장소에서 사용할 수의 소스를 참고 ILSpy으로 표시 ) :

    internal static string ExpandDataDirectory(string keyword,
                                               string value,
                                               ref string datadir)
    {
        string text = null;
        if (value != null && 
            value.StartsWith("|datadirectory|", StringComparison.OrdinalIgnoreCase))
        {
            string text2 = datadir;
            if (text2 == null)
            {
                // 1st step!
                object data = AppDomain.CurrentDomain.GetData("DataDirectory");
                text2 = (data as string);
                if (data != null && text2 == null)
                    throw ADP.InvalidDataDirectory();
    
                if (ADP.IsEmpty(text2))
                {
                    // 2nd step!
                    text2 = AppDomain.CurrentDomain.BaseDirectory;
                }
                if (text2 == null)
                {
                    text2 = "";
                }
                datadir = text2;
            }
    
            // 3rd step, checks and normalize
            int length = "|datadirectory|".Length;
            bool flag = 0 < text2.Length && text2[text2.Length - 1] == '\\';
            bool flag2 = length < value.Length && value[length] == '\\';
            if (!flag && !flag2)
            {
                text = text2 + '\\' + value.Substring(length);
            }
            else
            {
                if (flag && flag2)
                {
                    text = text2 + value.Substring(length + 1);
                }
                else
                {
                    text = text2 + value.Substring(length);
                }
            }
            if (!ADP.GetFullPath(text).StartsWith(text2, StringComparison.Ordinal))
                throw ADP.InvalidConnectionOptionValue(keyword);
        }
        return text;
    }
    

    먼저 현재 응용 프로그램 도메인 데이터에 보이는 그래서 (기본적으로, 거기에는 "DataDirectory를"데이터가 내가 믿는 정의되지 않은) 다음 현재 응용 프로그램 도메인의 기본 디렉토리로 가져옵니다. 나머지는 대부분 경로 뿌리와 경로 정상화를위한 검사이다.

  3. ==============================

    3.은 MSDN 포럼에 말한다 이것에 대해 유사하지만 단순화 된 질문은있다 :

    은 MSDN 포럼에 말한다 이것에 대해 유사하지만 단순화 된 질문은있다 :

    기본적으로 | DataDirectory를 | (다음 App_Data에 당신이 원래의 질문에 자신을 알아 냈로) 응용 프로그램 폴더를 가리키는.

    데이터베이스에 단지 대체 경로를하기 때문에, 당신은 AppDomain.SetData과 경로를 직접 정의 할 수 있습니다.

  4. from https://stackoverflow.com/questions/12187068/where-is-datadirectory-defined by cc-by-sa and MIT license