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クエリは、割り当てられている部門のフルネームとともに、すべてのユーザーを選択します。この結果には、オブジェクト「Department」のDepartmentデータが含まれています。これは、デバッグ時に確認できます。

ただし、この結果をグリッドビューに追加すると、結合されたデータによってエラーが発生します。

"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データを使用して、このような「結合された」列をグリッドビューに表示する方法についてのアイデアはありますか?

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 に答える