Linq选择字段

时间:2011-03-06 01:39:52

标签: c# linq

只是试验Linq:

    DataClassesDataContext db = new DataClassesDataContext();
    var q = from p in db.tblBlogEntries select p;
    foreach (var customer in q)
    {
        Response.Write(customer.ID + " " + customer.title + "\n");
    }

工作正常,但我似乎只能返回1个字段,或者所有字段。如何选择发言,p.IDp.title,还有其他内容?

5 个答案:

答案 0 :(得分:8)

您需要投放到anonymous type才能返回您想要的“部分”:

 var q = from p in db.tblBlogEntries select new { p.ID, p.Title };

或者,您也可以定义一个只包含所需属性子集的新类。如果要返回投影的实例,这可能是有益的,因为匿名类型只能在本地范围内使用:

 var q = from p in db.tblBlogEntries 
         select new BlogTitleAndId() { ID = p.ID, Title = p.Title };

答案 1 :(得分:1)

而不是“选择p”

使用:

var q = from p in db.tblBlogEntries select new { Column1 = p.Column1, Column2 = p.Column2 };

新的{}创建了一个内联类,因此您可以选择所需的列。

答案 2 :(得分:1)

像这样......

DataClassesDataContext db = new DataClassesDataContext();
var q = from p in db.tblBlogEntries select new { Id = p.ID, Title = p.title };
foreach (var customer in q)
{
    Response.Write(customer.ID + " " + customer.title + "\n");
}

答案 3 :(得分:1)

var q = from p in db.tblBlogEntries select new {p.ID, p.Title}

答案 4 :(得分:0)

这个怎么样:

DataClassesDataContext db = new DataClassesDataContext();
var q = from p in db.tblBlogEntries select new { ID = p.ID, title = p.title };
foreach (var customer in q)
{
    Response.Write(customer.ID + " " + customer.title + "\n");
}

此部分new { ID = p.ID, title = p.title }创建一个包含成员IDtitle的匿名类。您可以为任何列添加成员,并自动推导出类型。尽管如此,获得所有领域并不是什么大不了的事。 This article提供了更多信息和类似的示例。