我有一张这样的桌子:
A 栏 | B 栏 |
---|---|
彼得 | 苹果 |
彼得 | 橙色 |
彼得 | 哈密瓜 |
约翰 | 苹果 |
约翰 | 土豆 |
约翰 | 哈密瓜 |
苏珊 | 猕猴桃 |
苏珊 | 黄瓜 |
苏珊 | 橙色 |
我需要从 A 列 和 B 列 中选择值,其中 B 列 包含值 Orange,因此结果表应如下所示:
A 栏 | B 栏 |
---|---|
彼得 | 苹果 |
彼得 | 橙色 |
彼得 | 哈密瓜 |
苏珊 | 猕猴桃 |
苏珊 | 黄瓜 |
苏珊 | 橙色 |
这最好在 LINQ 或实体框架中可行吗?
我试图找到类似的问题,但到目前为止还没有成功
首先选择 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 查询。