我有 2 种类型的数据库结构,如下所示:
Project
ProjectID
ProjectName
Task
TaskID
TaskTitle
Status
ProjectID
由于在 sql server 上声明的所有关系 - dbml 自动知道它们,我可以简单地通过以下方式获取所有项目的任务:
myProject.Tasks
到目前为止,一切都很好。
我想显示所有项目及其任务,以便用户可以按状态过滤它们。这意味着我只想显示那些满足所选标准的任务(当然还有他们的项目)。
为此,我有一个中继器,看起来有点像这样:
<asp:Repeater id="rptProjects" runat="server">
<ItemTemplate>
<%# Eval("ProjectName") %> (<%# Eval("ProjectID") %>):
<asp:Repeater id="rptTasks" DataSource="<%#(Container.DataItem as Project).Tasks %>" runat="server">
<ItemTemplate>
<%# Eval("TaskTitle") %>
</ItemTemplate>
</asp:Repeater>
</ItemTemplate>
</asp:Repeater>
但我无法弄清楚所需的 LINQ 查询。
在我尝试的每个查询中,我的项目都很好(这意味着如果项目的任务都不符合选定的标准,它不在列表中),但每次都Project.Tasks
保留选定项目的所有任务,而不是过滤任务列表。