我有下一堂课:
public class Event
{
public int Id { get; set; }
public string Title { get; set; }
public string Description { get; set; }
public List<ImageLink> Images { get; set; }
}
public class ImageLink
{
public int Id { get; set; }
public string Url { get; set; }
}
我的行动:
public IQueryable<Event> GetEvents()
{
var events = EventsRepository.Events.AsQueryable();
return events;
}
EventsRepository.Events - 返回包含许多imageslink的事件,但在brouser中我没有看到它们:
"odata.metadata":"http://localhost:28286/odata/$metadata#Events","value":[
{
"Title":"Title",
"Description":"Description"
},...
我知道Odata有$扩展选项,但似乎还没有支持。 如何强制我的应用程序返回深度可序列化对象?因为我想在我的客户端获取所有包含的数据。
答案 0 :(得分:2)
如果ImageLink被建模为复杂类型,则Event的响应有效负载将包含ImageLink内联。您可以告诉模型构建器使用
将ImageLink映射为复杂类型modelBuilder.ComplexType<ImageLink>();
这样做的正确方法是使用$ expand。我们现在正在使用$ select和$ expand支持,并且应该在下周初的夜间构建中使用工作位。