Выбор множества полей из таблицы с использованием выражений Linq и Lambda - PullRequest
4 голосов
/ 15 сентября 2010

У меня есть DataContext (дБ), который может обращаться к таблицам в моей базе данных 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);

Цель состоит в том, чтобы выложить их в CSV-файл (через запятую). var лучший способ сделать это?

Ответы [ 3 ]

11 голосов
/ 15 сентября 2010

Для этого вам понадобится анонимный объект:

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 голосов
/ 15 сентября 2010

Если под "вар" вы подразумеваете анонимный тип, то, вероятно,:

var items = db.tblItems.Select(i => new { i.id, i.name, i.totalAmount });
3 голосов
/ 15 сентября 2010

Да, либо используйте анонимный тип, например

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,
    });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...