我想获取前10条记录,但忽略了.take(10)
并返回所有行。
[WebMethod]
public string getTopTenFeatured(int tab)
{
using (MyDataContext db = new MyDataContext())
{
IQueryable q = tab == 0? q = db.Items.Where(x => x.isFeatured == true)
.OrderBy(x => x.title).Select(x=> x.title).Take(10):
q = db.Authors.Where(x=> x.isFeatured == true)
.OrderBy(x => x.text).Select(x => x.text).Take(10);
StringBuilder sb = new StringBuilder();
sb.Append("<ul>");
int i = 0;
foreach (var n in q)
{
i++;
sb.AppendFormat("<li>{0}. {1}</li>", i, n);
}
sb.Append("</ul>");
return sb.ToString();
}
}
修改:这里没有错,Projects
而不是web sites
显然必须手动重建。在浏览器中点击刷新不会像web site
类型项目那样自动执行此操作。
答案 0 :(得分:0)
我认为你的q ='太多了。试试这个
IQueryable q = (tab == 0) ?
db.Items
.Where(x => x.isFeatured == true)
.OrderBy(x => x.title)
.Select(x=> x.title).Take(10)
: db.Authors.Where(x=> x.isFeatured == true)
.OrderBy(x => x.text)
.Select(x => x.text).Take(10);
另外,如果你不介意一些建设性的批评,我认为你的网络方法不应该混淆这两个返回结果。也许每个都有一个单独的Web方法 - 更强类型。选项卡的检查应该在客户端完成,并且应该调用适当的Web方法。只是一个想法。 : - )