Linq to sql gridview中的Linq联接表

Linq to sql gridview中的Linq联接表,linq-to-sql,gridview,Linq To Sql,Gridview,上面的linq查询将选择所有人员,以及分配给他们的部门的全名。这个结果包含对象“Department”中的Department数据,我可以在调试时看到它 但是,将此结果添加到gridview时,关联的数据会触发错误: var result = from p in dc.People join d in dc.Departments on p.fk_dep_id equals d.pk_dep_id select p;

上面的linq查询将选择所有人员,以及分配给他们的部门的全名。这个结果包含对象“Department”中的Department数据,我可以在调试时看到它

但是,将此结果添加到gridview时,关联的数据会触发错误:

var result = from p in dc.People
             join d in dc.Departments
             on p.fk_dep_id equals d.pk_dep_id
             select p;

return result.ToList();
我尝试在Gridview中执行以下操作:

"A field or property with the name "Department.name" was not found on the selected data source.


关于如何使用linq2sql数据在Gridview中显示这样的“连接”列,您有什么想法吗?

数据字段应该是数据源中对象的属性名称。你不能使用那样复杂的表达式。为此,您需要
模板字段

<asp:BoudField DataField="Department.Name" HeaderText="Department" SortExpression="Department.Name" />

<asp:TemplateField>
    <ItemTemplate>
        <asp:Label runat="server" 
             Text="<%# (Eval("Department") as Department).Name %>" />
    </ItemTemplate>
</asp:TemplateField>