代码之家  ›  专栏  ›  技术社区  ›  Joseph

保存LINQ查询以供以后使用的最简单方法是什么?

  •  6
  • Joseph  · 技术社区  · 15 年前

    我有一个功能请求,以便以后保存用户的搜索结果。

    现在,我正在根据用户指定的内容动态构建LINQ语句。

    所以我开始想,是否有一种简单的方法可以让我简单地获取用户构建的查询,并将其保存在某个地方,最好是我的数据库,以便稍后检索它?

    是否有某种方法可以将查询持久化为XML或JSON,然后在以后重新构造查询?

    4 回复  |  直到 15 年前
        1
  •  3
  •   StriplingWarrior    15 年前

    以前从来没有这样做过,但我有这样的想法:

    而不是直接针对数据库运行查询,如果要针对 OData 端点,您可以设想提取作为查询字符串生成的URL,并保存该URL以供以后使用。因为Odata已经有了一个虽然不合格的产品,你可以从其他人的劳动中获利。

        2
  •  3
  •   Wyatt Barnett    15 年前

    我将在这里使用一个特定于域的对象,即使这样的好东西确实存在——当您在LINQ中保存序列化查询和基础模型更改时会发生什么,从而使每个人保存的查询无效。在某种程度上,使用您自己的数据格式应该可以避免这种情况。

        3
  •  0
  •   Darren Lewis    15 年前

    看看表达式类。这将允许您预编译查询。尽管为了更好的性能而将其持久化以供日后用于数据库还是有疑问的。

        4
  •  0
  •   StriplingWarrior    15 年前

    我一边看一边写 this presentation 在PDC10上。1小时后,他展示了如何为表达式树构建JSON序列化程序。你可能会觉得很有趣。