为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页面的更改
答案 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语句中获得所需的所有字段。