Используя OData v4 в .NET, у меня есть два класса и, похоже, не могу получить связь между сущностью между ними для хранения в БД..net odata client create entity relationship
public class Customer
{
int Id {get;set;}
...
}
public class Order
{
int Id {get;set;}
public virtual Customer customer {get;set;}
...
}
WebApiConfig.cs
builder.EntitySet<Order>("Orders");
builder.EntityType<Order>().ContainsRequired(o => o.Customer);
builder.EntitySet<Customer>("Customers";
And my inline code looks like:
var cust = new Customer(...);
var order = new Order(...);
container.AddToOrders(order);
container.SetLink(order,"Customer", cust);
container.SaveChanges();
Я не получаю никаких ошибок, но когда я отладки контроллеров, объект клиента в объекте порядка равна нулю. Если в контроллере я сброшу объект клиента в объекте заказа, данные будут сохранены правильно. Таким образом, кажется, что часть структуры сущности работает правильно, просто не может заставить клиента OData сериализовать входящий объект Customer в объекте Order.
Любая помощь по поводу того, что мне не хватает (со стороны клиента), была бы весьма признательна.
Спасибо.
см. Http://www.asp.net/web-api/overview/odata-support-in-aspnet-web-api/using-select-expand-and-value. => «$ expand» –
Я видел, что все это работает с сервера на клиент. Моя проблема связана с клиентом на сервере, так как мне нужно расширить свой запрос Add для объекта Order (или что-то в этом роде). Я получил поведение, которое мне было необходимо на сервере, используя .Include() в контроллере. Мне просто кажется, что на клиенте отсутствует кусок, который вызывает противоположное поведение при добавлении объекта с содержащимся объектом объекта. Имеют смысл? –