2

我在 cassandra 中创建了一个复合主键列族

CREATE TABLE rMessage ( Key varchar,msg_id varchar, msg blob, PRIMARY KEY(key,msg_id) );

我正在尝试通过 Fluent cassandra api 创建记录。

       string key = "cat1"; 
       string id = "2";

       CompositeType compositeKey = new CompositeType<FluentCassandra.Types.AsciiType, FluentCassandra.Types.AsciiType>(key,id);
       FluentColumnFamily record = ColumnFamily.CreateRecord(compositeKey.ToString());
       dynamic r = record.AsDynamic();
       r.msg = blob;
       record.Columns[0].ColumnTimeUntilDeleted = diff;
       Context.Attach(record);                
       Context.SaveChanges();

上面的代码返回错误“没有足够的字节来读取组件 0 的值”。我不知道为什么。

我尝试了以下方法,但仍然收到相同的错误“没有足够的字节来读取组件 0 的值”。

var blob = CassandraBinaryFormatter.Serialzie(value);
            var compositeKey = new CompositeType<FluentCassandra.Types.UTF8Type, FluentCassandra.Types.UTF8Type>(key, value.ID.ToString());
            FluentColumnFamily record = ColumnFamily.CreateRecord(key); 
            record[compositeKey.ToString()] = blob;
            Context.Attach(record);
            Context.SaveChanges();

感谢帮助。

4

0 回答 0