我也是 Cassandra 和 FluentCassandra (C#.NET) 的新手。我对 RDBMS(关系数据库)有很重的概念,比如 Microsoft SQL。
嗯......我能够做一些简单的代码,但是,这远远不是我在 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,但结果是作为线性序列 os 列给我的,就像你在 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);
在此之后,我在“用户”数据集对象中获得了所有信息。
我真的很想使用 FluentCassandra 在 Cassandra 数据库上执行相同的操作,但我有点(嗯,很多)迷失了。我花了很多时间寻找这个,但没有成功,文档和示例很差......
请问有人可以帮忙吗?
谢谢。
好吧,我做到了:
var context = new CassandraContext(keyspace: "KeySpace", host: "IpAddress");
var results = context.ExecuteQuery("select * from Test");
我有回报,但返回的只是 KEY 列,其他列没有。
我尝试了其他方法来进行选择,但所有方法都具有相同的结果:只有行的 KEY 行。
任何想法?
谢谢。