Sha*_*uaz 10 .net c# asp.net linq-to-sql
我有两个表"POSTS"和"评论".一篇文章可以有很多评论,我希望能够选择评论数量最多的前10个帖子.post_id是注释表中的FK.我正在使用Linq to SQL.请告诉我如何做到这一点.提前致谢.
编辑
var top = (from q in db.question_tables
from a in db.answer_tables
where q.QUEST_ID.Equals(a.ANS_QUEST_ID)
orderby q.QUEST_TEXT.Count() descending
select new
{
QUEST_TEXT = q.QUEST_TEXT
}).Take(10);
Run Code Online (Sandbox Code Playgroud)
这就是我的linq查询现在的样子,它给出了一个错误"类型'System.String'不支持序列运算符.".:/
Dre*_*kes 33
该错误消息是因为您正在调用.Count()字符串属性(QUEST_TEXT).编译因为字符串是可枚举的.但是,Linq-to-SQL并不理解这一点.
如果您在DBML文件中映射了两个表之间的关系,那么您可以在表达式中使用它:
var top = (from q in db.question_tables
orderby q.answers.Count() descending
select q).Take(10);
Run Code Online (Sandbox Code Playgroud)
但是,您发布的代码与您提供的描述不完全匹配.你提到评论,但代码谈到了答案.
| 归档时间: |
|
| 查看次数: |
51420 次 |
| 最近记录: |