エンティティの子を返しません。その下で、カスタムPOCOエンティティを回すために、Entity FrameworkとObjectContextを使用して単純なエンティティモデルを構築しました。私は単一のエンティティを渡すと、予想通りWCF RESTサービスは、私がJSONに設定defaultOutgoingResponseFormatを持つRESTテンプレートでWCFサービスを書かれている
は、システムが動作します。エンティティに子を追加すると、REST応答は空白になります。デバッガでは、エンティティは正しく設定されますが、サービス自体は何も返しません。
ので、例えば、私はTrip.Get()メソッドを持っています。 WCFコードは次のようになります
Library.Trip.Getは作業バージョンにこのようになり[WebGet(UriTemplate = "{id}", ResponseFormat = WebMessageFormat.Json)]
public Model.Trip Get(string id)
{
Model.Trip fetchedTrip = null;
try
{
fetchedTrip = Library.Trip.Get(new Guid(id));
}
catch (Exception ex)
{
Debug.Write(ex.Message);
}
return fetchedTrip;
}
:
public static Model.Trip Get(Guid tripId)
{
using (Model.POCOTripContext context = new Model.POCOTripContext())
{
var tripEntity = context.Trips.FirstOrDefault(c => c.Id == tripId) ?? new Model.Trip();
return tripEntity;
}
}
これは予想される結果を返し、次のようになります
{ "ArrivalDate": "/日(1334203200000-0400)/"、 "DepartureDate": "/日(1334721600000-0400)/"、 "ID": "d6413d96-fe1f-4b1c-ae7a-3bbf516cdc2f"、 "名前": "テスト123"、 "写真":ヌル、 "PlacesOfInterest":ヌル、 "WhereTo": "オーランド、フロリダ州"}
ただし、子に追加するようにライブラリメソッドを変更した場合、RESTサービスは空白の値を返します。何もない。
public static Model.Trip Get(Guid tripId)
{
using (Model.POCOTripContext context = new Model.POCOTripContext())
{
var tripEntity = context.Trips.Include("PlacesOfInterest").Include("Photos").Include("PlacesOfInterest.PoiAttributes").FirstOrDefault(c => c.Id == tripId) ?? new Model.Trip();
return tripEntity;
}
}
デバッガーは、returnステートメントのWCFサービスで、エンティティが完全に正しく入力されていることを示します。
私はいくつかの魔法の属性が不足していると確信しており、これまでにドームを持っている人が私を助けてくれることを期待しています!
からプロパティを除外する
[IgnoreDataMember]
属性でナビゲーションプロパティを追跡バックマークはPlacesOfInterest' 'で' Trip'または 'Trips'のナビゲーションプロパティはありますか?はいの場合はそれを削除して(テスト用)、もう一度試してみてください。 –これを行うと、他のすべての関係が壊れてしまいます。マイナーな手術をして、あなたに戻ってきてください。 –
それはそれをしました!私はupvoteの良さであなたをシャワーことができるように答えを作る!レコードの –