【发布时间】:2009-12-01 03:03:48
【问题描述】:
我正在尝试为我的应用构建一个 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 查询字符串并排除未提及的列。
最后,我可以使用类似 JavaScript.Serialize(result.ToList());
LINQ to SQL 可以做到这一点吗?
【问题讨论】:
标签: c# .net linq linq-to-sql