0
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();

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

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

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

我尝试在 Gridview 中执行以下操作:

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

关于如何使用 linq2sql 数据在 Gridview 中显示这种“连接”列的任何想法?

4

1 回答 1

0

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

<asp:TemplateField>
    <ItemTemplate>
        <asp:Label runat="server" 
             Text="<%# (Eval("Department") as Department).Name %>" />
    </ItemTemplate>
</asp:TemplateField>
于 2012-10-15T10:13:49.310 回答