【发布时间】:2010-01-07 10:38:49
【问题描述】:
大家好。只是想知道这是从数据库中获取值的最有效方法:给定;
----------- --------------- -------------
| Channel | |Issue | |Topic |
| path(ck)| |channelID(fk)| |issueID(fk)|
----------- --------------- -------------
- 一个频道有很多问题
- 一个问题有多个主题
- 路径是备用键
我已经编写了以下 linq 语句。
var content = (from c in db.Channels
where c.channel_holding_page == path
select new { c, _latestIssue = c.Issues.OrderBy(i => i.issue_created).Where(i => i.issue_isVisible == true).FirstOrDefault(), _topics = c.Issues.OrderBy(i => i.issue_created).Where(i => i.issue_isVisible == true).FirstOrDefault().Topics }).FirstOrDefault();
我想从所述频道获取(在此处向后工作)与设置为公开(issue_isVisible)的最新问题(issue_created)相关的所有主题。
这是最有效的方法还是有比这个更快的方法。
【问题讨论】:
-
有一个重复两次的子查询。如果将其分解为单独的声明,也许会更容易理解。这仍然不会导致额外访问数据库。
标签: c# asp.net linq linq-to-sql