LINQ:根据其中一列值从两列中选择值

问题描述 投票:0回答:1

我有一张这样的桌子:

A 栏 B 栏
彼得 苹果
彼得 橙色
彼得 哈密瓜
约翰 苹果
约翰 土豆
约翰 哈密瓜
苏珊 猕猴桃
苏珊 黄瓜
苏珊 橙色

我需要从 A 列B 列 中选择值,其中 B 列 包含值 Orange,因此结果表应如下所示:

A 栏 B 栏
彼得 苹果
彼得 橙色
彼得 哈密瓜
苏珊 猕猴桃
苏珊 黄瓜
苏珊 橙色

这最好在 LINQ 或实体框架中可行吗?

我试图找到类似的问题,但到目前为止还没有成功

c# entity-framework linq select many-to-many
1个回答
0
投票

首先选择 ColumnA 中 ColumnB 与橙色匹配的所有值,例如

var as = (from ab in db.Table where ab.ColumnB == 'Orange' select ab.ColumnA);

然后选择 A 列在该“列表”中具有值的所有记录,例如

var results = (from ab in db.Table where as.Contains(ab.A) select ab).ToList();

有两个查询并不重要,因为 Linq2Sql 或 EF 应该将它们合并为一个 Sql 查询。

© www.soinside.com 2019 - 2024. All rights reserved.