使用Linq和Lambda表达式从表中选择多个字段

Jim*_*mbo 4 c# lambda linq-to-sql

我有一个DataContext(db)可以访问我的SQL Express数据库中的表,我想从中提取tblItem表中的多个字段中的三个:

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

目的是将它们吐出到csv文件中(以逗号分隔).这是var最好的方法吗?

Fem*_*ref 11

您将不得不使用anomynous对象:

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

你可以items像任何其他集合一样迭代:

foreach(var item in items)
{
  //do stuff
}
Run Code Online (Sandbox Code Playgroud)


Jon*_*eet 5

如果"a var"是指匿名类型,则可能是:

var items = db.tblItems.Select(i => new { i.id, i.name, i.totalAmount });
Run Code Online (Sandbox Code Playgroud)