Предоставление производных типов через службу данных для запросов OData - PullRequest
1 голос
/ 03 марта 2011

Я создал первую модель кода на основе EF4 CTP5, которая включает две сущности в родительско-дочерних отношениях, где дочерняя сущность содержит несколько дополнительных полей. Оба типа получены из одной и той же таблицы TPH и используют только что созданный дискриминатор. Теперь мне нужно выяснить, как открыть дочерний набор сущностей через службу данных и сделать его доступным для запросов.

Вариант использования для этого заключается в том, что у нас есть таблица, которая содержит иерархию клиентов. У каждого клиента есть родитель и ноль или более детей. Родитель содержит только информацию, необходимую для настройки клиента и для выставления счетов (имя, адрес и т. Д.). Дочерние элементы (их можно рассматривать как сателлитные ветви) содержат дополнительный набор свойств, уникальных для них, в дополнение к тому, что они наследуют от родительского элемента. Все они содержатся в одной таблице, которая была денормализована для чистой производительности поиска.

До сих пор я раскрыл сущность, заданную способом, предложенным в этом сообщении в блоге Он предлагает раскрыть метод, который возвращает коллекцию context.Child IQueryable. Однако этот набор сущностей слишком велик (более 700 тыс. Записей), чтобы просто раскрыть все целиком, и я не могу заставить стандартные запросы oData работать против операции службы.

У меня много вопросов, но чтобы этот пост был как можно более кратким, я ограничу их.

• Во-первых, я хочу знать, является ли это все еще лучшим и единственным способом справиться с этим? Похоже, что недопущение раскрытия производных типов без этого обходного пути является серьезным пробелом в функциональности. • Во-вторых, как я могу запросить этот набор сущностей? Это возможно? Возможно, у меня нет чего-то материализованного в EF? Любая помощь или предложения с благодарностью.

Лучшее и заранее спасибо!

...