Я написал службу WCF с шаблоном REST, для которого defaultOutgoingResponseFormat имеет значение Json.В соответствии с этим, я построил простую модель сущностей, используя Entity Framework и ObjectContext, для передачи пользовательских сущностей POCO.
Если я передаю одну сущность, система работает должным образом.Если я добавлю дочерние элементы к объекту, ответ REST будет пустым.В отладчике сущность заполняется правильно, но сама служба вообще ничего не возвращает.
Так, например, у меня есть метод Trip.Get ().Код WCF выглядит следующим образом:
[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;
}
Library.Trip.Get выглядит так в рабочей версии:
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": "/ Date (1334203200000-0400) /", "DepartureDate": "/ Date (1334721600000-0400) /", "Id": "d6413d96-fe1f-4b1c-ae7a-3bbf516cdc2f"," Name ":" Test 123 "," Photos ": null," PlacesOfInterest ": null," WhereTo ":" Orlando, FL "}
Если я изменю метод Library, добавив его в дочерние элементыОднако служба 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;
}
}
Отладчик в службе WCF в операторе return показывает, что сущность заполнена полностью и правильно.
Я уверен, что мне просто не хватает некоторыхмагический атрибут, и я надеюсь, что кто-то, у кого есть этот купол, мог бы помочь мне!