2012-02-21 1 views
0

엔티티를 노출하는 엔티티 프레임 워크가있는 DAL이 있습니다. 이러한 엔터티는 WCF 서비스 프로젝트에서 사용되며 클라이언트에 노출됩니다.WCF 서비스를 사용하여 노출 된 클라이언트 응용 프로그램의 Entity Framework 엔터티 엔티티

서비스 참조를 통해 Silverlight 웹 프로젝트에서 이러한 엔티티를 소비합니다. 그런 다음 코드 공유에 RIA 도메인 서비스를 사용하고 있습니다. 작업을로드하는 동안 그러나 나는 다음과 같은 오류가 발생합니다 :

DomainContext context= new DomainContext(); 
LoadOperation<Genre> lo = context.Load<Genre>(context.GetGenres()); 

GetGenres을()은 모든 장르를로드하는 도메인 서비스 작업입니다.

[Invoke] 
    public IEnumerable<Genre> GetGenres() 
    { 
     return proxy.GetGenres(); //proxy is wcf proxy. 
    } 

이 쿼리는 목록을 반환합니다. 장르는 WCFServiceReference에서 가져온 DataContract i 입니다.

실제 오류 :

The type 'SL.Web.ServiceReference.Genre' cannot be used as type parameter 'TEntity' in the generic type or method 'System.ServiceModel.DomainServices.Client.DomainContext.Load(System.ServiceModel.DomainServices.Client.EntityQuery)'. There is no implicit reference conversion from 'SL.Web.ChinookServiceReference.Genre' to 'System.ServiceModel.DomainServices.Client.Entity'.

질문은 다음과 같습니다

나는 이런 식으로 할 수 있나요 아니면 실버 라이트 사이에 사용자 지정 엔터티를 WCF 서비스 datacontract에 매핑 공유 실버 라이트 사용자 정의 클래스를 가져야한다 클라이언트 및 웹 프로젝트?

DomainService를 사용하여 웹과 클라이언트간에 서비스 참조의 엔터티를 공유하는 방법이 있습니까 ??

+0

편집 해 주셔서 감사합니다. – user695663

+0

GetGenres를 DomainService 또는 일반 WCF 서비스로 노출하고 있습니까? – JMarsch

+0

도메인 서비스 작업 만. – user695663

답변

0

문제는 GetGenres를 Invoke 작업으로 표시했기 때문입니다. 쿼리 작업으로 표시하고 다시 작성하면 좋은 모양이 될 것이라고 생각합니다.

+0

내가 [Query]로 바꿨을 때 나는 다른 예외가있다. \t 엔티티 'SL.Web.ChinookServiceReference.Genre'에는 지원되지 않는 유형의 'ExtensionData'속성이 있습니다. – user695663

+0

이제 우리는 어딘가에 있습니다 (믿거 나 말거나!) 장르 클래스에 복잡한 유형 또는 객체 멤버가 있습니까? 장르에 대한 클래스 정의를 게시 할 수 있습니까? 또한이 게시물이 도움이 될 수도 있습니다. http://forums.silverlight.net/t/139977.aspx/1 – JMarsch

관련 문제