2013-01-24 1 views
1

저는 Cassandra와 FluentCassandra (C# .NET)를 처음 사용합니다. Microsoft SQL과 같은 RDBMS (관계형 데이터베이스)에 대한 무거운 개념이 있습니다.FluentCassandra로 문의하는 방법

음 ... 몇 가지 간단한 코드를 수행 할 수 있었지만, 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); 
} 

글쎄, 나는 CompositeColumn는 "조아"키를 가진 행을,하지만 당신은 foreach 문에서 볼 수있는 것처럼 결과는 선형 시퀀스 OS 열로 나에게 갔다 진술.

글쎄, 지금은이 모든 것을 알고 난 내 의심을 노출 할 수 있습니다 :

어떻게 내가 좋아하는 필터를 적용 할 수 있다고 뭔가 같은 :

select Name, Birthday, Age, MiddleName, LastnName, 
from Test 
where Key = 'joao' 
and Age > 18 

내가 FluentCassandra를 사용하여 작업을 수행하는 방법을 잘 모릅니다. .Get() 메서드를 사용하여이를 수행 할 수 있습니까? 예인 경우 어떻게합니까? 이 난 후

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); 

: 난 그냥 뭔가를 할 뭉치 예를 들어 ADO.NET을 사용하는 경우 내가

... 내가 FluentCassandra에서 그들과 함께 일을 너무 잘 모릅니다, 복합 열이 기억 "사용자"DataSet 개체에 모든 정보가 있습니다.

저는 FluentCassandra를 사용하여 Cassandra 데이터베이스에서 동일한 작업을 실제로하고 싶습니다.하지만 약간은 손실되었습니다. 나는 이것을 찾기 위해 많은 시간을 보냈지 만 성공하지 못했습니다. 문서와 예제는 가난합니다 ...

아무도 도와 줄 수 있습니까?

감사합니다.


글쎄, 내가 한 :

var context = new CassandraContext(keyspace: "KeySpace", host: "IpAddress"); 

var results = context.ExecuteQuery("select * from Test"); 

그리고 내가 수익을 가지고,하지만 반환되는 것은 바로 KEY 열입니다, 다른 컬럼은하지 않습니다.

다른 방법으로 선택을 시도했지만 모두 동일한 결과를 보았습니다 : 행의 KEY 만있는 행.

아이디어가 있으십니까?

감사합니다.

답변

0

정렬 된 열 집합 내에서 연속 범위에 있지 않으면 열 패밀리의 한 쿼리에서 선택된 수의 열만 읽을 수 있습니까?

0

executeQuery는 IcqlRow 엔터티 목록을 반환합니다. 그로부터 각 행의 열을 반복 할 수 있어야합니다.

var rows = db.ExecuteQuery(cql).ToList(); 
var entities = rows.Select(row => ToEntity(row)).ToList(); 

function DataEntity ToEntity(ICqlRow row) 
{ 
    var obj = new DataEntity(); 
    foreach (var col in row.Columns) 
    { 
     var info = data.GetType().GetProperty(col.ColumnName.GetValue<string>()); 
     if (col.ColumnValue != null) 
      info.SetValue(data, col.ColumnValue.GetValue(info.PropertyType), null); 
    } 
    return obj; 
} 

하면 이상한 모든되어지고 키 열 및 아무것도 :

는 여기에 내가 알고있는 객체에 CqlRow을 변환하는 데 사용하는 방법입니다.컬럼 패밀리가 실제로 예상 한 컬럼을 포함하고 있음을 확인 했습니까? Cassandra CLI를 사용하여 CF를 쿼리하면 무엇을 얻게됩니까?

관련 문제