使用“链接到实体”从数据存储中选择许多行

本文关键字:存储 数据 选择 许多行 链接 实体 链接到实体 使用 | 更新日期: 2023-09-27 18:02:04

我们需要接受来自用户输入的键值集合。然后,必须在L2E数据存储上执行查询,该数据存储应选择集合中包含键的所有行。到目前为止,我得到的最好的是:

var lines = dataStore.Entities.ToList(); /* To List to force a query */
var selectedLines = lines.Where(line=> inputValues.Contains(line.key)).Distinct();

然而,这看起来似乎很浪费,因为我们为了选择(可能)一小部分行而拉出整个数据存储。执行匹配每个键值(列被索引)的单独查询是否更浪费,或者是否有更好的方法使用Linq语法,我错过了?

使用“链接到实体”从数据存储中选择许多行

EF4支持contains,所以你可以直接使用它。

var selectedLines = dataStore.Entities
                             .Where(line=> inputValues.Contains(line.key))
                             .Distinct();

您应该在第一个查询中包含这些内容。
这将只返回用户指定的值。
我还建议你看看LinqPad,这是一个非常好的工具,它会显示Linq对实体创建的查询。

var lines = (from p in dataStore.Entities
            where inputValues.Contains(p.key)
            select p).ToList();