示例#1
0
        private Slice GetIndexKeyPrefixSlice(SecondaryIndexAttribute indexAttr)
        {
            using (var ms = new MemoryStream())
                using (var writer = new BinaryWriter(ms))
                {
                    writer.Write(ClassNameHash);
                    writer.Write(IndexPrefix);
                    writer.Write(this.HashedIndexName(indexAttr.Name));
                    writer.Flush();

                    return(Slice.FromByteArray(ms.ToArray()));
                }
        }
示例#2
0
        private Slice GetIndexKeySlice(T obj, MemberInfo member, SecondaryIndexAttribute indexAttr, Slice primaryId)
        {
            using (var ms = new MemoryStream())
                using (var writer = new BinaryWriter(ms))
                {
                    var serializer      = indexAttr.Serializer;
                    var serializedBytes = serializer.Serialize(this.GetValue(obj, member));
                    this.VerifySerializedBytes(serializedBytes);

                    writer.Write(this.GetIndexKeyPrefixSlice(indexAttr).ToByteArray(deepCopy: false));
                    writer.Write(serializedBytes);
                    writer.Write(primaryId.ToByteArray(deepCopy: false));
                    writer.Flush();

                    return(Slice.FromByteArray(ms.ToArray()));
                }
        }