2010-09-15 35 views
4

我有一個DataContext(db)可以訪問我的SQL Express數據庫中的表,我想從中提取tblItem表中的多個字段中的三個:使用Linq和Lambda表達式從表中選擇多個字段

// this does not work - what is the correct way to do it? 
var items = db.tblItems.Select(i => i.id && i.name && i.totalAmount); 

意圖是將這些吐出到一個CSV文件(逗號分隔)。 var是否是最好的方法?

回答

11

你將不得不使用這一個anomynous對象:

var items = db.tblItems.Select(i => 
      new { 
        ID = i.id, 
        Name = i.name, 
        TotalAmount = i.totalAmount 
       }); 

可以遍歷items像超過任何其他集合:

foreach(var item in items) 
{ 
    //do stuff 
} 
5

如果「一個變種」你的意思是匿名類型,則可能:

var items = db.tblItems.Select(i => new { i.id, i.name, i.totalAmount }); 
3

是的,要麼使用類似的匿名類型

var items = 
db.tblItems.Select(i => 
new 
{ 
i.id, 
i.name, 
i.totalAmount, 
}); 

或者,如果你有一個類用它來代替。

var items = 
    db.tblItems.Select(i => 
    new ItemsClass() //Or whatever 
    { 
    Id = i.id, 
    Name = i.name, 
    TotalAmount = i.totalAmount, 
    });