Я сталкиваюсь с некоторыми проблемами, использую Microsooft.Data.Services.Client в проекте .NET Framework и пытаюсь развернуть объекты 2-го уровня.
Вот пример, имеющий следующую модель данных:
public class Customer
{
public Order Order { get; set; }
}
public class Order
{
public Item Item { get; set; }
}
public class Item
{
public int Id { get; set; }
public string Description { get; set; }
}
Если я использую метод .Execute () и предоставляю RequestUri, как показано ниже: "V3/Customer?$expand=Order,Order/Item"
это на самом деле будет работать и выполнять ленивую загрузку подэлементов для включения в мой запрос.
Если я использую DataServiceQuery следующим образом (где context является экземпляром DataServiceContext):
var q = context.Customers.Expand(x => x.Order).Expand(x => x.Order.Item);
Это загрузит объект Order в результат клиента, но НЕ в Itemпорядка.
Если я посмотрю на запрос, который создаст контекст, он будет похож на использование Uri в Execute.
Как загрузить вложенные элементы (в данном случае 'Order / Item ') с использованием DataServiceContext с клиентом OData V3?