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