gpt4 book ai didi

c# - 按相等缓存 LINQ 表达式

转载 作者:太空狗 更新时间:2023-10-29 21:54:32 24 4
gpt4 key购买 nike

考虑这种情况。

您有一个存储库,允许对其进行某些调用。这些调用使用 LINQ,并且在返回的数据量方面可能相对昂贵。

考虑到在我的例子中,如果数据是旧的也不是太糟糕 - 可以实现缓存,这样大型且昂贵的查询就不会在每次调用时都执行。嘿,我们甚至可以实现一些缓存策略来根据时间或使用情况确定何时再次执行该查询。

我正在努力解决的问题是如何将其键入缓存。一种方法是简单地说:

"querytype1" = Particular LINQ expression
"querytype2" = Particular LINQ expression

然后用一个简单的字符串作为缓存的键。但是,考虑到我们正在执行 LINQ,我们是否可以通过 LINQ 表达式本身对缓存进行键控?我了解性能指标,但是否可以比较两个 LINQ 表达式是否相同?

最佳答案

策略:比较 SQL 输出

一种策略可能是检索呈现的 SQL 文本 + 参数,并确定它们是否与来自另一个 IQueryable 的呈现的 SQL + 参数相同。

参见 Retrieve LINQ to sql statement (IQueryable) WITH parameters获取更多信息。

关于c# - 按相等缓存 LINQ 表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16092190/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com