2011-03-06 48 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提供了更多信息和類似的樣本。