Вот проблема. Где-то есть база данных Oracle, но она недоступна для разработчиков / пользователей программного обеспечения. Вместо этого мы можем использовать основанный на XML веб-сервис, который является связующим звеном между программой и базой данных, поэтому он выглядит так:
1) Я хочу получить таблицу. У меня есть WebMethod для этого. Он возвращает простой XML этой таблицы.
2) Я хочу добавить строку в таблицу. У меня есть WebMethod для этого. Он принимает необходимые аргументы и возвращает простой XML-код, подтверждающий, успешно ли выполнена операция.
Так же имеются полные интерфейсы SCUD (выбор, создание, обновление (в моем случае - просто редактирование), удаление) для каждой сущности, хранящейся в БД. Но есть и другие отношения.
Итак, я хочу написать какую-нибудь оболочку для работы с базой данных whol. Представьте, что у вас есть такие столы:
Customers
*Id
Name
Orders
*Id
CustomerId
OrderData
И я хочу выполнить такие запросы как:
var order = MYORM.GetOrders().First(); // first order
var customer = MYORM.GetOrders().First().Customer // first order's customer
var customers = MyORM.GetCustomers(); // returns customers list
НО!
customers.Contains(customer)
должно быть true
, даже customers
запрашивалось и, следовательно, создавалось после customer
.
Более того, все операции create-delete-edit также должны поддерживаться.
Так работает EF, но его механика кажется слишком сложной. Есть идеи как это можно сделать?