0

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

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

变量“orderGroupId”是一个 Guid。显然这是在 C#/.NET 环境中使用 FluentCassandra。有什么提示吗?

谢谢你。

4

2 回答 2

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

干杯,艾莉森

于 2012-12-21T18:23:13.957 回答
0

要将 System.Guid 转换为 FluentCassandra.Types.UUIDType,您只需将一个分配给另一个。

FluentCassandra.Types.TimeUUIDType 也是如此。

于 2012-11-12T21:33:49.037 回答