1.Я не хочу возвращать весь набор столбцов в сущности.
2.У меня есть несколько столбцов FK, и мне нужны другие сведения о столбцах таблицы.
Для этого вы должны определить новый класс, который соответствует тому, что вам нужно / что вы хотите, чтобы ваши клиенты видели.Это может быть прямой класс POCO - без особых требований.Соберите этот класс для каждой сущности, оставив ненужные столбцы и выбрав дополнительное поле или два для столбцов FK в этот новый класс.Возврат IQueryable<YourNewClass>
вместо класса сущности напрямую.
Чтобы избежать огромных операторов назначения влево-вправо только для заполнения свойств нового класса, вы должны взглянуть на AutoMapper что позволяет очень легко копировать классы, которые очень похожи друг на друга (например, отсутствуют или добавляются несколько свойств).
4.Как мне отформатировать ответ;т. е. добавить несколько дополнительных деталей к ответу, например номер страницы и т. д., изменить теги xml, удалить несколько таких деталей, как "link rel"?
Это невозможно - протокол OData очень строго определяетчто будет в сообщении, какие есть ссылки и т. д. Если вы не можете с этим смириться - вам придется свернуть свою собственную службу REST WCF и вообще отбросить службу данных WCF.
ПроверкаИз WCF REST Developer Center на MSDN , если вы хотите более тщательно исследовать этот маршрут.
Обновление: эта ссылка, кажется, перестала работать - попробуйте Обзор программирования веб-соединений WCF вместо.