views:

34

answers:

3

I have a DataContext (db) that can access the tables in my SQL Express database, from which I would like to extract only three of the multiple fields in the tblItem table:

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

The intention is to spit these out into a csv file (comma separated). Is a var the best way to do this?

A: 

If by "a var" you mean an anonymous type, then probably:

var items = db.tblItems.Select(i => new { i.id, i.name, i.totalAmount });
Jon Skeet
+1  A: 

You will have to use an anomynous object for this:

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

You can iterate over items like over any other collection:

foreach(var item in items)
{
  //do stuff
}
Femaref
A: 

Yes, either use an anonymous type like so

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

Or if you have a class use it instead.

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