15

ADO.Net Data Servicesクライアントを使用して、LoadProperty:を呼び出してエンティティを更新する場合

ctx.BeginLoadProperty(this, "Owner", (IAsyncResult ar) => ...

プロパティが次の場合、サーバーでエラーをスローしますnull

エラー:例外がスローされました:System.Data.Services.DataServiceException:セグメント'Owner'のリソースが見つかりません。System.Data.Services.RequestDescription.GetSingleResultFromEnumerable(SegmentInfo segmentInfo)at System.Data.Services.DataService1.CompareETagAndWriteResponse(RequestDescription description、ContentFormat responseFormat、IDataService dataService)
at System.Data.Services.DataService1.SerializeResponseBody(RequestDescription description、IDataService dataService )at System.Data.Services.DataService1.HandleNonBatchRequest(RequestDescription description)at System.Data.Services.DataService`1.HandleRequest()

問題は、クライアントがプロパティがまだ入力されているか、nullまだ入力されていないかを知らないことです。プロパティOwnerは、からVehicleへのリンクCustomerです。

何が問題なのですか?

ありがとう

4

3 に答える 3

33

サービス コンテキストのIgnoreResourceNotFoundExceptionプロパティを true に設定します。

svc.IgnoreResourceNotFoundException = true;
于 2011-05-13T05:50:18.040 に答える
20

主キーを照会すると、キーが存在しない場合に例外が生成されます。回避策は、条件にダミーのtrue式を追加することです(例:1 == 1 && item.Id == XXX)。

ダミー式がない場合、ADO.NET要求は次のようになります。

http://localhost//test.svc/Role(XXX)

ダミー条件の場合、要求は次のとおりです。

http://localhost//test.svc/Role()?$ filter = trueおよび(Id eq 1)

2番目のケースでは、期待される動作(nullが返される)は正しいです。

于 2009-12-06T15:24:43.170 に答える
3

「セグメント「プロパティ」のリソースが見つかりません」というエラーも受け取りました。私は主キーで探しているwhere句のようです。存在しない主キーを使用すると (FirstOrDefault() を使用した場合でも) エラーがスローされると言うリソースをいくつか見つけました (結果を提供しない他の where 句とは対照的に)。似たようなことが自分にも起きていると思います。

于 2009-02-10T04:36:43.847 に答える