3

ブラウザーで URL を使用してデータを取得すると、次のような関連データを表示できます。

http://localhost/services.svc/Dinners(1)/RSVPs

私の場合、DinnerId = 1 の 5 つの RSVP がリストされていますが、別のプロジェクトから OData を使用している場合、Dinners しか取得できません。

プロジェクトにサービス参照を追加し、非常に単純な LINQ クエリを介してデータを返すことで、サービスを利用しています。

public ActionResult Index()
        {
            var result = (from d in db.Dinners
                          select d);

            return View(result);
        }

入力する必要があるときに d.RSVPs = 0 になる理由はありますか? 私はEFを使用しています(最初にコード-ScottGuによる投稿に続き、ディナーとRSVP用の2つの非常に単純なPOCOクラスがあります。ディナークラスにはRSVPのコレクションがあります: 、RSVPクラスは外部キーと同様public ICollection<RSVP> RSVPs { get; set; }にディナーを指しますpublic int DinnerId { get; set; }ディナークラス: public Dinner Dinner { get; set; }.

ありがとう。

4

2 に答える 2

3

返されたオブジェクト グラフの複数のレベルにアクセスするには、Expand() を使用する必要があります。

遅延コンテンツの読み込み (WCF Data Services)

何かのようなもの:

var result = (from d in db.Dinners.Expand("RSVPs")
                      select d);
于 2010-09-08T23:52:02.907 に答える
1

どうやら、問題は、virtual関連するテーブルで POCO クラスを作成するときのキーワード内にあります。Dinner クラス内またはRSVP クラス内を参照するときにvirtualキーワードがある場合、遅延読み込みは有効になっていますが、WCF Data Service が動作しなくなりました。キーワードを削除すると、WCF Data サービスが再び機能し始めましたが、遅延/遅延読み込みが有効になっていません! これが機能なのかバグなのかわからない?! 今のところ、次のリリースで EF POCO と WCF Data Service が実際に使用されるまで待つことにします。ICollection<RSVP>Dinnervirtual

見てくれてありがとう。

于 2010-09-11T00:47:06.170 に答える