繁体   English   中英

如何使用LinqDataSource在GridView中访问ForeignKey值?

[英]How to access ForeignKey values in GridView using LinqDataSource?

问题如下:

我在数据库中有三个表:

包含ID_Article,标题等字段以及FK ID_Author的ARTICLE

类别ID为ID_Category,名称的CATEGORY

类别为ID_Article,ID_Category的CATEGORYTOARTICLE

现在,我有一个页面显示给定类别的所有文章。 里面有一个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传递查看的类别的ID。

如何访问Article表的字段,以便可以在GridView中为其创建列? 我尝试使用Eval(“ Article.Title”),但一直说“ DataBinding:'konserwatyzm.db.CategoryToArticle'不包含名称为'Article'的属性。”

谢谢!

确保在dbml或映射中正确定义了密钥。 然后尝试通过linqdatasource配置向导选择要作为行的所有表来构造查询。 看起来您仅在需要时选择了CategoryToArticles表+另外两个。 您将能够以这种方式引用其他表中的列。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM