2010-06-19 3 views
0

나는이 오류가 점점 계속 : 연결 문자열이 같은의 app.config에 저장 보인다WPF와 ADO.NET EF - 오류

Microsoft.Practices.Composite.Modularity.ModuleInitializeException was unhandled 
    Message=An exception occurred while initializing module 'DiagrammerModule'. 
    - The exception message was: An exception has occurred while trying to add a view to region 'MainRegion'. 
    - The most likely causing exception was was: 'System.ArgumentException: The specified named connection is either not found in the configuration, not intended to be used with the EntityClient provider, or not valid. 
    at System.Data.EntityClient.EntityConnection.ChangeConnectionString(String newConnectionString) 
    at System.Data.EntityClient.EntityConnection..ctor(String connectionString) 
    at System.Data.Objects.ObjectContext.CreateEntityConnection(String connectionString) 
    at System.Data.Objects.ObjectContext..ctor(String connectionString, String defaultContainerName) 
.... 

:

<connectionStrings> 
    <add name="DBEntities" connectionString="metadata=res://DataAccessLayer/EntityDataModel.csdl|res://*/EntityDataModel.ssdl|res://*/EntityDataModel.msl;provider=System.Data.SqlServerCe.3.5;provider connection string=&quot;Data Source=|DataDirectory|\DB.sdf;Password=password;Persist Security Info=True&quot;" providerName="System.Data.EntityClient" /> 
    </connectionStrings> 

DataAccessLayer는 이름입니다 모델과 엔터티를 보유하는 DLL의.

코드에 어떤 문제가 있습니까?

도움 주셔서 감사합니다.

답변

0

데이터 컨텍스트 생성자가 구성 파일에서 연결 문자열을 찾을 수 없습니다. 검사 파일이 응용 프로그램 출력 디렉토리에 복사되고 이름 {your-WPF-applicaiton-name} .exe.config ({your-DLL-containing-data-context} .dll.config 아님)가 있어야합니다.

+0

아마이 프리즘 응용 프로그램입니다 것을 추가해야합니다. 나는 dll의 이름을 삽입하는이 솔루션 (페이지 맨 아래로 스크롤)을 따라 갔다 : http://geekswithblogs.net/hoarked/archive/2009/02/04/creating-a-wpf-application -with-prism-v2-ndash-browse-module.aspx – Enzomatric

0

제공된 링크에서 다음을 나타냅니다. "*"는 파일이 들어있는 DLL의 이름으로 바뀝니다.

그래서 당신은 다음 "*"으로의 모든 인스턴스를 교체해야합니다 :

<connectionStrings> 
    <add name="DBEntities" connectionString="metadata=res://DataAccessLayer/EntityDataModel.csdl|res://DataAccessLayer/EntityDataModel.ssdl|res://DataAccessLayer/EntityDataModel.msl;provider=System.Data.SqlServerCe.3.5;provider connection string=&quot;Data Source=|DataDirectory|\DB.sdf;Password=password;Persist Security Info=True&quot;" providerName="System.Data.EntityClient" /> 
</connectionStrings>