将Guid转换为Cassandra UUID

时间:2012-11-12 15:14:00

标签: cassandra fluentcassandra

我想将Guid转换为UUID或相同的字符串版本,以便以下CQL查询起作用。

                        if (cassandraDb.ExecuteQuery(string.Format("SELECT OrderGroupId FROM Order WHERE OrderGroupId={0}", orderGroupId)).Count() <= 0)                            {

变量'orderGroupId'是Guid。显然,这是在C#/ .NET环境中使用FluentCassandra。任何提示?

谢谢。

2 个答案:

答案 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();
    }

干杯, 艾里