2011-08-04 37 views
0

私はWCF DataSericeとEF4.1コードファースト(C#)を使用します。DataServiceContext&Linq:継承されたオブジェクトのみを選択

私は2つの実体があります。Personクラス

から継承 1人 2.ユーザーを私はDbSet者からユーザーオブジェクトのみを取得したいです。どうやってやるの? は、その後、私はそのようdataerviceを照会:

service.CreateQuery<User>("DbPersons").OfType<User>().Execute(); 

私はOfTypeメソッドは、DataServiceのコンテキストでサポートされていないという例外を取得します。

Linq式をURIに変換する際のエラー: 'OfType'メソッドはサポートされていません。

+0

あなたが使用しているデータサービスのバージョン。 .NET 4.0に同梱されている標準バージョンは、OfType演算子をサポートしていません。 –

+0

こんにちは、私は任意のバージョン(CTP2を含む)を試しました – DolceVita

+0

あなたはJune CTPでそれを試しましたか? http://blogs.msdn.com/b/astoriateam/archive/2011/06/30/announcing-wcf-data-services-june-2011-ctp-for-net4-amp-sl4.aspx –

答えて

1

OK、サービス運用方法を追加して解決しました。 を参照してくださいソリューションはここhttp://msdn.microsoft.com/en-us/library/cc668788.aspx

ここに私のコードです:

 public static void InitializeService(DataServiceConfiguration config) 
    { 
     config.SetServiceOperationAccessRule("DbUsers", ServiceOperationRights.AllRead); 
    } 

    [WebGet] 
    public IQueryable<User> DbUsers() 
    { 
     return CurrentDataSource.DbPersons.OfType<User>(); 
    } 

とクライアントアプリケーションでは、いつものようにリクエストを送信します。

service.CreateQuery<User>("DbUsers").Execute(); 
関連する問題