代码之家  ›  专栏  ›  技术社区  ›  Jimbo

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

  •  4
  • Jimbo  · 技术社区  · 15 年前

    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);
    

    var 最好的办法是什么?

    3 回复  |  直到 9 年前
        1
  •  11
  •   Femaref    15 年前

    为此,必须使用无粘液对象:

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

    items 就像其他收藏一样:

    foreach(var item in items)
    {
      //do stuff
    }
    
        2
  •  5
  •   Jon Skeet    15 年前

    如果“a var”是指匿名类型,那么可能:

    var items = db.tblItems.Select(i => new { i.id, i.name, i.totalAmount });
    
        3
  •  3
  •   DaveShaw Thishin    15 年前

    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,
        });