Как получить доступ к значениям ForeignKey в GridView, используя LinqDataSource? - PullRequest
0 голосов
/ 08 февраля 2011

Проблема заключается в следующем:

У меня есть три таблицы в базе данных:

ARTICLE с такими полями, как ID_Article, Title и т. Д., А также FK ID_Author

КАТЕГОРИЯ с полями ID_Category, Имя

CATEGORYTOARTICLE с полями ID_Article, ID_Category

Теперь у меня есть страница, на которой показаны все статьи данной категории. Внутри есть GridView.

        <asp:GridView ID="GridViewCategories" runat="server" 
            AutoGenerateColumns="False" DataSourceID="LinqSourceGridCategories" >
            <Columns>
                <asp:TemplateField>
                    <HeaderTemplate>Title</HeaderTemplate>
                    <ItemTemplate>
                        ???
                    </ItemTemplate>
                </asp:TemplateField>                        
            </Columns>
        </asp:GridView>

Плюс LinqDataSource

        <asp:LinqDataSource ID="LinqSourceGridCategories" runat="server" 
            ContextTypeName="konserwatyzm.db.DataClassesDataContext" EntityTypeName="" 
            TableName="CategoryToArticles" Where="ID_Category == @ID_Category">
            <WhereParameters>
                <asp:QueryStringParameter Name="ID_Category" QueryStringField="id" 
                    Type="Int32" />
            </WhereParameters>
        </asp:LinqDataSource>

Идентификатор просматриваемой категории передается через QueryString.

Как получить доступ к полям таблицы Article, чтобы я мог создать для них столбцы в GridView? Я пытался использовать Eval ("Article.Title"), но он продолжает говорить, что "DataBinding: 'konserwatyzm. db.CategoryToArticle 'не содержит свойство с именем' Article '. "

Спасибо!

1 Ответ

1 голос
/ 25 марта 2011

Убедитесь, что ваши ключи правильно определены в вашем dbml или карте.Затем попробуйте создать запрос с помощью мастера настройки linqdatasource, выбрав все таблицы, для которых вы хотите строки.Похоже, вы выбрали таблицу CategoryToArticles только тогда, когда она вам нужна + две другие.Таким образом вы сможете ссылаться на столбцы в других таблицах.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...