私は Cassandra と FluentCassandra (C#.NET) も初めてです。私は、Microsoft SQL のような RDBMS (リレーショナル データベース) の重い概念を持っています。
うーん...単純なコードをいくつか実行できましたが、RDBMS で ADO.NET を使用するときに行うことにはほど遠いものです。
私がしたこと:
var context = new CassandraContext(keyspace: "keyspace", host: "ipAddress"))
var columnFamily = context.GetColumnFamily("Test");
var record = records.Get("joao").FirstOrDefault();
foreach (FluentColumn colunm in record.Columns)
{
Console.WriteLine("{0}", colunm.ColumnValue);
}
さて、キー「joao」を持つ行は CompositeColumn ですが、結果は foreach ステートメントでわかるように、列の線形シーケンスとして表示されました。
さて、これですべてがわかったので、私の疑問を明らかにすることができます。
次のようなフィルターを適用するにはどうすればよいですか:
select Name, Birthday, Age, MiddleName, LastnName,
from Test
where Key = 'joao'
and Age > 18
FluentCassandra を使用してそれを行う方法がわかりません。.Get() メソッドを使用してそれを行うことはできますか? はいの場合、どのように?複合列があることを思い出してください。FluentCassandra で複合列を操作する方法もわかりません...
たとえば、ADO.NETを使用していた場合、次のようなことをするだけです:
SqlConnection connection = new SqlConnection("connectrion string");
string query = "select Name, Birthday, Age, MiddleName, LastnName, from Test where Key = 'joao' and Age > 18";
SqlDataAdapter adapter = new SqlDataAdpter(connection, query);
Dataset users = new datSet();
adapter.Fill(users);
この後、「ユーザー」DataSetオブジェクトにすべての情報がありました。
FluentCassandraを使用してCassandraデータベースで同じ操作を実行したいのですが、少し(まあ、かなり)迷っています。これを探すのに多くの時間を費やしましたが、成功しませんでした。ドキュメントと例は貧弱です...
誰か助けてください。
ありがとう。
さて、私はしました:
var context = new CassandraContext(keyspace: "KeySpace", host: "IpAddress");
var results = context.ExecuteQuery("select * from Test");
そして、私はリターンを持っていますが、返されるのはキー列だけで、他の列はそうではありません。
選択を行う他の方法を試しましたが、すべて同じ結果になりました。行のキーのみを持つ行だけです。
何か案が?
ありがとう。