2010-08-16 3 views
1

vs2010 내에 새 도메인 서비스 클래스를 추가하고 싶습니다. "새 도메인 서비스 클래스 추가"대화 상자에서 엔티티 프레임 워크 데이터베이스 컨텍스트를 선택하지만 사용할 수있는 엔티티를 표시하지 않습니다. 내가 클릭하면 "확인"VS2010은 나에게 다음과 같은 오류 메시지를 제공합니다 : 이것에 대한DomainService는 EDMX 파일에서만 작동합니까?

--------------------------- 
Microsoft Visual Studio 
--------------------------- 
Value cannot be null. 

Parameter name: ssdlPath 
--------------------------- 
OK 
--------------------------- 

이유는 내가 (내가 EDMX 파일과 그것을 시도하고 일)을 EDMX 파일을하지 않아도된다. 대신 나는 별도의 csdl, msl 및 ssdl 파일이 있습니다. 여러 데이터베이스를 지원하기 때문입니다.

내 데이터 컨텍스트에서 LinqToEntitiesDomainService 클래스를 어떻게 사용할 수 있습니까? 엔티티 개체와 데이터 컨텍스트는 POCO 템플릿으로 생성됩니다.

MSBuild\Microsoft\Silverlight\v4.0\Microsoft.Ria.Client.targets(303,5): error : Value cannot be null. 
MSBuild\Microsoft\Silverlight\v4.0\Microsoft.Ria.Client.targets(303,5): error : Parameter name: ssdlPath 

사람이 도와 드릴까요 : 나는 (도메인 서비스 마법시를 사용하지 않는) 수동으로 도메인 경호 국 클래스를 추가하면 나는 기본적으로 동일한라는 컴파일시 오류가?

+0

누군가가 정보 파일 EDMX없이 LinqToEntitiesDomainService을 사용 했습니까? 실버 라이트 용 클라이언트 코드 생성이 작동하지 않는 것 같습니다. 클라이언트 세대가 ssdlPath를 어떻게 감지합니까? – Jeldrik

+0

어떻게 든이 일을 할 수 있을까요? 나는 똑같은 문제를 겪고 있으며 난처한 상황에 처해있다. –

+0

불행히도 아닙니다. 나는 DomainService 클래스 (LinqToEntitiesDomainService calss insted)를 사용하고 사용자 정의 메소드를 구현했다. – Jeldrik

답변

1

YorDoaminContainer.csdl, YorDoaminContainer.ssdl 파일 및 YorDoaminContainer.msl 파일을 선택한 다음 을 속성에서 빌드 동작을 포함 리소스로 설정합니다. 그런 다음 세 가지 리소스에 대한 연결 문자열이 올바른지 확인하십시오. 예를 들어

:

<connectionStrings> 
    <add name="DomainModel" 
     connectionString="metadata=res://*/NameSpace.DomainController.csdl|res://*/NameSpace.DomainController.ssdl|res://*/NameSpace.DomainController.msl; 
     provider=System.Data.SqlClient;provider connection string='Data Source=localhost; 
     Initial Catalog=DB;Integrated Security=True;Connection Timeout=60; 
     providerName="System.Data.EntityClient" /> 
</connectionStrings> 
+0

세 가지 중 하나가있는 경우 이들이 모두 포함되어 있는지 확인해야합니다. 그렇지 않으면 각각 ArgumentNullException csdlPath, ssdlPath 또는 mslPath가 표시됩니다. –

+0

응답 해 주셔서 감사합니다. 세 가지 파일 모두에 대해 빌드 동작을 "임베디드 리소스"로 설정했습니다. 파일 이름이 역할을합니까? 파일 이름은 DomainController.csdl, DomainController.msl 및 DomainController.Oracle.ssdl과 같습니다. "모델"이라는 하위 폴더에 입력했습니다. – Jeldrik

+0

Jeho, 답변을 업데이트했습니다. –