0

我的应用程序的关键部分运行速度太慢。

我决定将对此的数据访问移动到存储过程中。

此查询的结果是订单列表。那部分工作正常。

但是每个订单都有一个可接受的优先级列表。那就是我遇到问题的地方。

所以我在列表中有一个列表。我可以做两个查询并尝试将结果缝合在一起,但我想我会看看 Entity Framework 是否有更好的方法。

4

1 回答 1

0

使用列表字典。

由于您实际上无法将字典传递到 SQL 查询中,因此您可能需要先从数据库中检索所有记录,然后使用 LINQ-to-objects 执行检查,例如:

Dictionary<int, List<int>> dict = new ...
var a = SomeEntity
    .ToArray()
    .Where(f => dict[f.key].Contains(f.someValue));

ToArray() 方法将整个结果集拉入内存(还有其他方法,但我通常是这样做的),并且以下 Where 子句在 LINQ-to-objects 而不是 LINQ-to-Entities 中运行,这意味着您的字典代码将运行良好。

于 2013-07-03T09:23:37.980 回答