次のような2つのタイプのデータベース構造があります。
Project
ProjectID
ProjectName
Task
TaskID
TaskTitle
Status
ProjectID
SQL サーバーで宣言されたすべての関係により、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
保持し、フィルター処理されたタスクを保持することはありません。リスト。