2011-01-03 2 views
0
<connectionStrings> 
    <add name="AnalysedCompanies" 
     connectionString="Data Source=|DataDirectory|AnalysedCompanies.sdf" 
     providerName="System.Data.SqlServerCe.4.0"/> 
</connectionStrings> 

public class AnalysedCompanies:DbContext 
{ 
    public DbSet<CompanyAnalyse.WebServiceLibrary.MinisterulFinantelorData> DateMinisterulFinantelor { get; set; } 
    public DbSet<CompanyAnalyse.WebServiceLibrary.ONRCData> DateONRC { get; set; } 
    public DbSet<CompanyAnalyse.WebServiceLibrary.InsolventaData> DateInsolventa { get; set; } 
    public DbSet<CompanyAnalyse.WebServiceLibrary.Bilant> Bilant { get; set; } 
    public DbSet<CompanyAnalyse.WebServiceLibrary.ContProfitSiPierdere> ContProfitSiPierdere { get; set; } 
    public DbSet<CompanyAnalyse.WebServiceLibrary.DateInformativeBilant> DateInformativeBilant { get; set; } 
} 

솔루션 탐색기에서 sdf 파일을 만들 수없는 이유는 무엇입니까? 모든 파일 표시.코드 우선 - 생성 된 데이터베이스를 볼 수없는 이유는 무엇입니까

다음에 실행할 때 데이터를 검색 할 수 있기 때문에 데이터가 저장되지만 코드 첫 번째에서 만들어야하는 데이터베이스가 표시되지 않습니다.

답변

1

.sdf 파일은 응용 프로그램의 유형에 따라 App_Data 또는 Debug/Release/executing 디렉터리에 있습니다.

새 파일을 보려면 먼저 해당 디렉토리를 '새로 고침'해야합니다.

0

때때로 (특히 컴퓨터에서 실행중인 SQL Server Express 인스턴스에 다른 연결 문자열이있는 경우) DbContext는 명명 된 연결 문자열을 무시하고 CE sdf가 아닌 Express 데이터베이스에 테이블을 만듭니다.

컨텍스트가 사용자의 명명 된 컨텍스트를 사용하는지 확인하는 한 가지 방법은 데이터 컨텍스트의 생성자 메서드에 강제로 적용하는 것입니다.

public class AnalysedCompanies:DbContext 
    { 
     public AnalysedCompanies() : base ("AnalysedCompanies") {} 

     public DbSet<CompanyAnalyse.WebServiceLibrary.MinisterulFinantelorData> DateMinisterulFinantelor { get; set; } 
     public DbSet<CompanyAnalyse.WebServiceLibrary.ONRCData> DateONRC { get; set; } 
     public DbSet<CompanyAnalyse.WebServiceLibrary.InsolventaData> DateInsolventa { get; set; } 
     public DbSet<CompanyAnalyse.WebServiceLibrary.Bilant> Bilant { get; set; } 
     public DbSet<CompanyAnalyse.WebServiceLibrary.ContProfitSiPierdere> ContProfitSiPierdere { get; set; } 
     public DbSet<CompanyAnalyse.WebServiceLibrary.DateInformativeBilant> DateInformativeBilant { get; set; } 


    } 

이 시점에서 DbContext는 명명 된 연결을 악용하여 예상 된 위치에 파일을 만들어야합니다.

+0

, 당신이 만약 돈 : 또는

, 당신은 당신이 연결 문자열 또는 이름을 사용 생성자를 사용하여 DbContext에 사용할 연결 문자열을 전달할 수 있습니다 name =을 포함하지 않는다. 그리고 나서 그것은 문자 그대로의 연결 문자열이라고 가정한다. –

1

코드 첫 번째는 연결 문자열에 대해 네임 스페이스를 포함하는 데이터 컨텍스트의 정규화 된 형식을 기반으로하는 연결 문자열을 사용하는 많은 규칙을 사용합니다. 따라서 연결 문자열은 AnalysedCompanies이 아닌 yournamespace.AnalysedCompanies으로 지정해야합니다. 그렇지 않으면 EF는 기본값을 기반으로하는 연결 문자열을 사용합니다.이 연결 문자열은 해당 이름으로 로컬 SQLExpress 또는 LocalDB에 새 데이터베이스를 만드는 것입니다. 나는 그 "이름 = AnalysedCompanies"이 될 것으로 판단

public AnalysedCompanies() : base ("name=AnalysedCompanies") {} 
관련 문제