gpt4 book ai didi

c# - 如何检查 RavenDB 中是否存在表(实体)

转载 作者:太空狗 更新时间:2023-10-29 21:43:33 25 4
gpt4 key购买 nike

我正在使用 Raven.Client.Lightweight 2.5 库查询 RavenDB 中的内置 TimeoutData 实体,以获取特定的超时文档。数据库中可能不存在 TimeoutData,因为那里还没有存储文档。在这种情况下,当您尝试查询它时会抛出 NotSupportedException。

目前我已经为这种情况创建了解决方法:

try
{
timeoutData = _session.Query<TimeoutData>().FirstOrDefault(t => t.Headers.ContainsValue(someValue));
}
catch (NotSupportedException)
{
return null;
}

是否可以在不使用 try-catch 的情况下验证 TimeoutData 是否存在?我还尝试了以下代码,但当 TimeoutData 实体中存在文档时它返回 false:

if (!_session.Query<TimeoutData>().Any())
{

}

最佳答案

原来我必须关闭实体名称的复数化,然后关闭 _session.Query<TimeoutData>().Any()开始工作了。在执行该查询之前,试图找到名为 TimeoutDatas 的实体.

这篇文章对我有帮助:RavenDB changes metadata "Raven-Entity-Name" .

我也忘了说 TimeoutData是用于存储延迟消息的 NServiceBus 实体。

关于c# - 如何检查 RavenDB 中是否存在表(实体),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37202330/

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