我想将Guid转换为UUID或相同的字符串版本,以便以下CQL查询起作用。
if (cassandraDb.ExecuteQuery(string.Format("SELECT OrderGroupId FROM Order WHERE OrderGroupId={0}", orderGroupId)).Count() <= 0) {
变量'orderGroupId'是Guid。显然,这是在C#/ .NET环境中使用FluentCassandra。任何提示?
谢谢。
答案 0 :(得分:0)
要将System.Guid转换为FluentCassandra.Types.UUIDType,您只需将一个指定给另一个。
FluentCassandra.Types.TimeUUIDType。
也是如此答案 1 :(得分:0)
使用 .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();
}
干杯, 艾里