使用LINQ读取特定列的所有行

eYe*_*eYe 5 c# linq entity-framework

听起来微不足道,但我找不到一个优雅的答案:如何使用LINQ on Entity Framework上下文将特定列的所有行读入字符串列表?

Chr*_*tos 11

您可以尝试以下简单的操作:

var rows = dbContext.TableName.Select(x=>x.ColumName);
Run Code Online (Sandbox Code Playgroud)

dbContext用于与数据库"对话"的类在哪里,TableName是表的名称,要读取的列值以及ColumnName列的名称.

此外,如果放置ToList后面Select,则将创建对象列表,其类型将是所调用列中值的类型ColumnName.


Jam*_*ran 6

克里斯托斯的回答只会给你一个智慧.如果你想要一个真正的List,你需要对IQueryable做一些事情:

var rows = dbContext.TableName.Select(x=>x.ColumName).ToList();
Run Code Online (Sandbox Code Playgroud)

虽然我可能会使用LINQ语法:

var rows = (from c in dbContext.TableName
             select c.ColumnName).ToList();
Run Code Online (Sandbox Code Playgroud)

这两种形式是等价的.