Я пытаюсь создать REST-ful API для моего приложения. В настоящее время у меня есть что-то вроде этого:
www.example.com/submissions/?format=json
Это вернет последние десять представлений в формате JSON. Каждый объект имеет свои данные, такие как имя отправителя, дата создания, пользователь, тело и т. Д.
Я бы хотел сделать что-то вроде:
www.example.com/submissions/?format=json&filter=name,user
Фильтр должен сделать запрос на возврат того же результата, но включить только упомянутые детали, т.е. каждый объект будет иметь только имя и пользователя.
Это довольно просто с точки зрения вывода JSON. Я могу загрузить все столбцы из базы данных и создать и сериализовать объект, который будет включать только столбцы в фильтре. Однако я не хочу загружать все столбцы в базе данных - Я хочу беспокоить свою базу данных только столбцами, которые я включу в ответ .
Я хочу сделать что-то вроде этого:
var result = from record in Submissions
select
{
Name,
Date,
User,
Body
};
Теперь у меня есть объект result
, который является IQueryable, поэтому пока еще не выполнен вызов базы данных.
Затем я должен изучить строку запроса filter
и исключить столбцы, которые не упомянуты.
Наконец, я могу выполнить оператор select с чем-то вроде
JavaScript.Serialize(result.ToList());
Возможно ли это с помощью LINQ to SQL?