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();
手伝ってくれてありがとう。