2010-02-03 44 views
1

我有一個包含學生信息ObjectDataSource控件與複合列表

lsStudents = context.GetTable<Student>().Where(p => p.M_Id.Equals(1)).ToList(); 

而且,我還有一個包含學生的教訓之一名單

lsMarks = context.GetTable<Mark>().Where(p => p.M_StudentId.Equals(1)).ToList(); 

我希望將這些列表合併到綁定到一個ObjectDataSource控件一箇中繼器。

<asp:Repeater ID="rpt" runat="server"> 
    <ItemTemplate> 
     <div><% Databinder.Eval(Container.DataItem,"M_StudenName") %></div> 
     <div><% Databinder.Eval(Container.DataItem,"M_Mark") %></div> 
    </ItemTemplate> 
</asp:Repeater> 

回答

1

您可以在ID字段中加入兩個字段,並將感興趣的字段選擇爲新的匿名類型。

var lsStudentWithMarks = context.GetTable<Student>().Where(p => p.M_id.Equals(1)) 
           .Join(context.GetTable<Mark>().Where(p => p.M_StudentId.Equals(1), (o,i) => o.M_Id == i.M_StudentId, (o,i) => new { o.M_StudentName, i.M_Mark }) 
           .Select(j => new { j.M_StudentName, j.M_Mark }) 
           .ToList();