我在 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();
感谢帮助。