2012-02-21 10 views
0

エンティティを公開するためのEntity Frameworkを持つDALがあります。これらのエンティティは、WCFサービスプロジェクトで使用され、クライアントに公開されます。WCFサービスを使用して公開されているクライアントアプリケーションのEntity Frameworkエンティティを消費する

サービス参照でSilverlight Webプロジェクトでこれらのエンティティを使用します。次に、コード共有にRIAドメインサービスを使用しています。しかし、操作をロードしようとしているときに次のエラーが表示されます。GetGenres()はすべてのGenresをロードするドメインサービス操作です。

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

このクエリはリストを返します。 Genreは、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にマップSilverlightのカスタムクラスを持っているとSilverlightの間でカスタムエンティティを共有する必要がありますクライアントとWebプロジェクト?

DomainServiceを使用してWebとクライアント間のサービス参照からエンティティを共有する方法はありますか?

+0

編集ありがとうございます。 – user695663

+0

GetGenresをDomainService、または単純なWCFサービスとして公開していますか? – JMarsch

+0

ドメインサービス操作のみ。 – user695663

答えて

0

問題は、GetGenresがInvoke操作としてマークされていることです。それをクエリ操作としてマークして再構築すると、あなたは良い形になると思います。

+0

私は[クエリ]に変更したとき、私はいくつかの例外があります。 \tエンティティ 'SL.Web.ChinookServiceReference.Genre'は、サポートされていない型のプロパティ 'ExtensionData'を持っています。 – user695663

+0

ここで、どこかに行っています(信じようと思っているのですか?)そのジャンルクラスには、ある種の複雑な型またはオブジェクトメンバーがありますか?ジャンルのクラス定義を投稿できますか?また、多分この投稿が役立つでしょう:http://forums.silverlight.net/t/139977.aspx/1 – JMarsch

関連する問題