将Guid转换为Cassandra UUID
我想将Guid转换为UUID或其字符串版本,以便下面的CQL查询能够工作将Guid转换为Cassandra UUID,cassandra,fluentcassandra,Cassandra,Fluentcassandra,我想将Guid转换为UUID或其字符串版本,以便下面的CQL查询能够工作 if (cassandraDb.ExecuteQuery(string.Format("SELECT OrderGroupId FROM Order WHERE OrderGroupId={0}", orderGroupId)).Count() <= 0) { 变量“orderGroupId”是Guid。显然,这是
if (cassandraDb.ExecuteQuery(string.Format("SELECT OrderGroupId FROM Order WHERE OrderGroupId={0}", orderGroupId)).Count() <= 0) {
变量“orderGroupId”是Guid。显然,这是在C/.NET环境中使用FluentCassandra。有什么提示吗
谢谢。要将System.Guid转换为FluentCassandra.Types.UUIDType,只需将其中一个指定给另一个即可
FluentCassandra.Types.TimeUUIDType也是如此。使用.ToString属性将CQL查询直接作为字符串执行
string.Format("SELECT OrderGroupId FROM Order WHERE OrderGroupId={0}", orderGroupId.ToString())
应该行得通。如果没有。。。您可能想试试我在其中一个C客户机的评论线程中找到的方法:
protected static string ToCqlString(Guid guid) {
var bytes = guid.ToByteArray();
StringBuilder sb = new StringBuilder(bytes.Length * 2);
for (int i = 0; i < 16; i++) {
if (i == 4 || i == 6 || i == 8 || i == 10) {
sb.Append("-");
}
var b = bytes[i];
sb.AppendFormat("{0:x2}", b);
}
return sb.ToString();
}
干杯,
Allison或者我应该如何更改此查询,以便使用FluentCassandra对Cassandra数据库中的UUID值执行等效的“测试”,而不是执行CQL语句?只是为了确保我理解,您已经有一个UUID数据FluentCassandra.Types.UUIDType或FluentCassandra.Types.TimeUUIDType,是否要将其与其他内容进行比较?但是对于此查询,需要将其显式转换为可以插入字符串CQL查询中的表单。很抱歉,我不太理解此注释。您想知道如何将GUID值作为字符串插入CQL SELECT查询吗?