首页 > 解决方案 > 我如何使用 ASP linq gridview 从一个表中的两个外键读取不同的数据名称

问题描述

我正在使用 ASP 和 SQL Server。

场景:我在数据库中的一个表中有两次外键是使用的特定表。

问题:当我想在 ASP GridView 中显示通过 linq 在这些外键上输入的不同数据时,它会为不同的值显示相同的数据。

示例: 我的第一个名为“Table_1”的表包含两个数据:

id2=书,id4=学生

在此处输入图像描述

我还有第二个名为“foreignKeys”的表,其中包含如下数据:

在此处输入图像描述

问题:我如何使用 linq gridview 从“foreignKeys”读取不同的数据名称(书籍和学生)?

我的 HTML 代码:

<asp:GridView ID="gvDeFrm" runat="server" AutoGenerateColumns="False" DataKeyNames="id" DataSourceID="linq">
                <Columns>
                    <asp:BoundField DataField="Name" HeaderText="Book"></asp:BoundField>
                    <asp:BoundField DataField="Name" HeaderText="Student"></asp:BoundField>
                </Columns>
            </asp:GridView>

我的背后代码:

 protected void linq_Selecting(object sender, LinqDataSourceSelectEventArgs e)
    {
        e.Result = (from f in db.foreignkey
                    select new
                    {
                        f.userId,
                        f.Table_1.Name
                    }
                  ).ToList();
    }

感谢您之前的关注。

标签: asp.netsql-serverlinqlinq-to-entities

解决方案


你只需要有两个 from 子句而不是一个。给每个人一个不同的别名,并确保每个人都有一个 where 子句来指定什么连接到什么。

目前,外键只有一个 from 子句。

看一下上一个问题的解决方案:c# Linq Join same table two

它足够相似,应该可以满足您的需求。


推荐阅读