2

我有下一节课:

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 - 返回带有许多图像链接的事件,但在 brouser 中我没有看到它们:

 "odata.metadata":"http://localhost:28286/odata/$metadata#Events","value":[
    {
      "Title":"Title", 
      "Description":"Description"
    },...

我知道 Odata 有 $expand 选项,但似乎还不支持。如何强制我的应用程序返回深度可序列化对象?因为我想在我的客户端中获取所有包含的数据。

4

1 回答 1

2

如果 ImageLink 被建模为复杂类型,则 Event 的响应负载将包含 ImageLink inline。您可以告诉模型构建器将 ImageLink 映射为复杂类型,使用:

modelBuilder.ComplexType<ImageLink>();

正确的方法是使用 $expand。我们现在正在支持 $select 和 $expand 并且应该在下周初的每晚构建中都有工作位。

于 2013-04-10T16:08:19.133 回答