gpt4 book ai didi

c# - "Greater than"where-condition on timeuuid 使用 Datastax C# Cassandra 驱动程序

转载 作者:太空狗 更新时间:2023-10-29 23:07:35 25 4
gpt4 key购买 nike

如何使用 Datastax C# 驱动程序在 CQL 查询中对 timeuuid 数据类型设置“大于”或“小于”where 条件?

我在 Cassandra 中有一个表,用于存储按时间戳排序的 cookie 历史记录作为 timeuuid:

CREATE TABLE cookie_history (
cookie_id text,
create_date timeuuid,
item_id text,
PRIMARY KEY ((cookie_id), create_date)
);

该表使用 C# 类进行映射,以便使用 Datastax C# Cassandra 驱动程序进行查询:

[Table("cookie_history")]
public class CookieHistoryDataEntry
{
[PartitionKey(1)]
[Column("cookie_id")]
public string CookieID;

[ClusteringKey(1)]
[Column("create_date")]
public Guid CreateDate;

[Column("item_id")]
public string ItemID;
}

对于给定的 cookie,我想要给定时间戳之后的所有项目。

        var myTimeUuid = new Guid("5812e74d-ba49-11e3-8d27-27303e6a4831");
var table = session.GetTable<CookieHistoryDataEntry>();
var query = table.Where(x => x.CookieID == myCookieId
&& x.CreateDate > myTimeUuid);

但这 (x.CreateDate > myTimeUuid) 给我一个编译时错误:

Operator '>' cannot be applied to operands of type 'System.Guid' and 'System.Guid'

最佳答案

可以在原始 CQL 中对 timeuuid 使用“大于”。因此,一种解决方案是从驱动程序执行原始 CQL:

session.Execute(@"select * 
from cookie_history
where cookie_id = 1242a96c-4bd4-8505-1bea-803784f80c18
and create_date > 5812e74d-ba49-11e3-8d27-27303e6a4831;");

关于c# - "Greater than"where-condition on timeuuid 使用 Datastax C# Cassandra 驱动程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22807513/

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