我们在server中使用ASP.NET核心分布式缓存标记帮助程序。
<distributed-cache name="MyCacheItem1" expires-after="TimeSpan.FromDays(1)">
<p>Something that will be cached</p>
@DateTime.Now.ToString()
</distributed-cache>它储存在下面。

问题是Id列是自动散列的。我们需要Id列中一些有意义的字符串。有可能吗?
发布于 2021-04-28 05:22:57
谢谢你,费韩。我从你的回答中得到了线索。
若要在Id列中存储自定义字符串,请执行以下操作。跟着台阶走。
内部
name="UniqueName“
如果(output.Attributes != null && output.Attributes.Count >0 && string.Equals(output.Attributes.Name,“htmlcache-唯一性”)& output.Attributes.Value !=空){ storageKey = Convert.ToString(output.Attributes.Value);}
最后,您可以看到id存储在db中,如下所示。

发布于 2021-04-27 06:11:37
问题是Id列是自动散列的。
从源代码中,我们可以发现这似乎是一种设计行为:
try
{
var serializedKey = Encoding.UTF8.GetBytes(key.GenerateKey());
var storageKey = key.GenerateHashedKey();
var value = await _storage.GetAsync(storageKey);
//...
//...
await _storage.SetAsync(storageKey, encodeValue, options);,我们希望Id列中有意义的字符串。有可能吗?
如果您有需要Id列未散列数据的特定场景/需求,则可以参考DistributedCacheTagHelper和DistributedCacheTagHelperService的源代码,然后实现自定义标记助手。
https://stackoverflow.com/questions/67265834
复制相似问题