2011-03-06 91 views
2

只需使用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,而没有别的?

回答

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

而不是“选择P”

用途:

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

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

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"); 
} 
1

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

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提供了更多信息和类似的样本。