从gridview中的父相关表中获取字段描述

时间:2010-08-06 14:17:22

标签: c# asp.net linq

为LINQ查询设置gridView.DataSource以及一些外键并在父表中获取字段的最佳方法是什么?像这样:

表BOOK有 Author_Id ,与表作者

相关

类:

public IQueryable<Book> ListAll()
{
    RENDBDataContext db = new RENDBDataContext();
    var result = from b in db.Books
                 orderby b.Id descending
                 select b;
}

代码隐藏:

grdBooks.DataSource = vBooks.ListAll();
grdBooks.DataBind();

在ASPX页面中,我可以使用[asp:TemplateField]获取作者名称,使用&lt;%Eval(“Author.Name”)%&gt;

我正在寻找的是一个更好的解决方案,不涉及aspx页面的更改

1 个答案:

答案 0 :(得分:2)

var result = from b in db.Books 
             orderby b.Id descending 
             select 
             {
                 AuthorName = b.Author.Name,
                 Title      = b.Title,
                 etc        = b.etc
             };

或者,如果您不想重新列出您将要使用的每个属性,您可以使用:

var result = from b in db.Books 
             orderby b.Id descending 
             select 
             {
                 AuthorName = b.Author.Name,
                 Book       = b
             };

但是你必须在你的GridView中写下“Book.Title”。但是,无论哪种方式,它都将在单个SQL语句中获得所需的所有字段。