sql - 简单的 Linq 问题 : How to select more than one column?

标签 sql linq select

我的代码是:

            List<Benutzer> users = (from a in dc.Benutzer
                                    select a).ToList();

我需要此代码,但我只想在“Benutzer”表中选择 20 列中的 3 列。
它的语法是什么?

最佳答案

这是一个查询表达式:

var users = (from a in dc.Benutzer
             select new { a.Name, a.Age, a.Occupation }).ToList();

或点符号:
var users = dc.Benutzer.Select(a => new { a.Name, a.Age, a.Occupation })
                       .ToList();

请注意,这将返回一个 anonymous type 的列表。而不是 Benutzer 的实例.我个人更喜欢这种方法而不是创建部分填充实例的列表,因为任何处理部分实例的人都需要检查它们是否来自以找出真正存在的内容。

编辑:如果你真的想构建 Benutzer 的实例,并且 LINQ 不允许您在查询中这样做(我不知道为什么),您总是可以这样做:
List<Benutzer> users = dc.Benutzer
    .Select(a => new { a.Name, a.Age, a.Occupation })
    .AsEnumerable() // Forces the rest of the query to execute locally
    .Select(x => new Benutzer { Name = x.Name, Age = x.Age, 
                                Occupation = x.Occupation })
    .ToList();

即使用匿名类型作为 DTO。注意返回的 Benutzer对象不会与上下文相关联。

关于sql - 简单的 Linq 问题 : How to select more than one column?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1542611/

相关文章:

MySql 从多个表中选择数据

sql - Postgres 查询以获取两个日期之间的结果

java - 选择 BETWEEN 日期返回错误结果

c# - Lambda性能 killer

xml - 我无法读取 xdocument 中的子元素

c# - 用于导航对象层次结构的 LINQ 查询

sql - 如何在包含最大值的表中查找记录?

php - echo 返回多个变量

java - 将值插入数据库时​​出现问题

sql - 使用 SQL 插入重复记录