Hi:
It's a tricky problem since LinqDataSource is relevant new for users. Please try something like this. In my sample there're two tables, "Student" and "Class". Student table has a foreign key ClassID that is the pk of Class table.
public string Func(object o)
{
string result = "";
Class c= DataBinder.Eval(o, "Class") as Class;
result += c.ClassName + "<br/>";
IEnumerable list = DataBinder.Eval(o, "Students") as IEnumerable;
foreach (Student st in list)
{
result += st.StudentName + " ";
}
return result;
}
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false"
DataSourceID="LinqDataSource1">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<%#Func(Container.DataItem)%>
</ItemTemplate></asp:TemplateField></Columns>
</asp:GridView>
<asp:LinqDataSource ID="LinqDataSource1" runat="server"
ContextTypeName="WebApplication5.DataClasses3DataContext" GroupBy="Class"
Select="new (key as Class, it as Students)" TableName="Students">
</asp:LinqDataSource>
Student table:
[Table(Name="dbo.Student")]
public partial class Student : INotifyPropertyChanging, INotifyPropertyChanged
{
...
[Association(Name="Class_Student", Storage="_Class", ThisKey="ClassID", IsForeignKey=true)]
public Class Class
{
...
}
Class table:
[Table(Name="dbo.Class")]
public partial class Class : INotifyPropertyChanging, INotifyPropertyChanged
{
...
[Association(Name="Class_Student", Storage="_Students", OtherKey="ClassID")]
public EntitySet<Student> Students
{
...
}
Regards