2011-02-08 42 views
0

的问题如下:如何使用LinqDataSource访问GridView中的ForeignKey值?

我在数据库三个表:

文章与像ID_Article,标题等领域,也是一个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> 

所观看的类别的ID通过查询字符串传递。

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

谢谢!

回答

1

确保您的密钥在您的dbml或map中正确定义。然后尝试使用linqdatasource配置向导构建一个查询,方法是选择所需的所有行。看起来你只需要选择CategoryToArticles表格+另外两个表格。您将能够以这种方式引用其他表中的列。

+0

如何在linqdatasource配置向导中选择多个表?可能吗? – 2013-11-20 12:50:22

相关问题