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

5

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


你也可以将Christos的答案写成var rows = from t in dbContext.TableName select t.ColumnName; - Alaa Masoud
2个回答

11

你可以尝试以下简单的方法:

var rows = dbContext.TableName.Select(x=>x.ColumName);

在这里,dbContext 是你用来与数据库通信的类,TableName 是你想要读取列值的表的名称,而 ColumnName 则是列的名称。

此外,如果在 Select 后面加上 ToList,你将创建一个对象列表,其类型将是名为 ColumnName 的列中值的类型。


很好的答案,为了学习的缘故,我会在得到更多选择后立即接受它。谢谢! - eYe

6

Christos的答案只会给你一个IQueryable。如果你想要一个实际的List,你需要对IQueryable进行操作:

var rows = dbContext.TableName.Select(x=>x.ColumName).ToList();

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

var rows = (from c in dbContext.TableName
             select c.ColumnName).ToList();

这两个表单是等价的。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接