как я могу использовать ASP linq gridview для чтения разных имен данных из двух внешних ключей в одной таблице - PullRequest
1 голос
/ 08 января 2020

Я использую ASP и SQL Сервер.

Сценарий: Одна из моих таблиц в базе данных дважды с внешним ключом - это указанная таблица c.

Проблема: Когда я хочу отобразить разные данные, введенные в эти внешние ключи с помощью linq в ASP GridView, он отображает те же данные для разных значений.

Пример: Моя первая таблица с именем «Таблица_1» с двумя данными:

id2 = Книга, id4 = Студент

enter image description here

и у меня есть вторая таблица с именем "foreignKeys", в которой есть такие данные:

enter image description here

Вопрос: как Могу ли я использовать 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();
    }

Спасибо за ваше внимание ранее.

1 Ответ

1 голос
/ 08 января 2020

Вам просто нужно иметь два предложения from вместо одного. Присвойте каждому свой псевдоним и убедитесь, что у каждого есть предложение where, которое указывает, что и к чему присоединяется.

В настоящее время у вас есть только одно предложение from для внешнего ключа.

Посмотрите на решение для этого предыдущего вопроса: c# Linq Соедините одну и ту же таблицу дважды

Это достаточно похоже, чтобы дать вам то, что вам нужно.

...