今をときめくCassandraの、LINQプロバイダを作ってみました( ̄∇  ̄ )
Cassandraemon in CodePlex
Cassandraemon
こんな感じで、データを取ってこれます。
public class Product
{
public int ID { get; set; }
public string Name { get; set; }
}
using(var context = new CassandraContext("localhost", 9160, "KeySpace1"))
{
var products = from x in context.ColumnList
where x.Key == "1" &&
x.ColumnFamily == "Product"
select x.ToObject<product>();
foreach(var p in products)
{
Console.WriteLine(p.ID.ToString());
}
}
一応、更新系もサポートしています。より詳しい解説はドキュメントページを見てください。
まだとりあえずクエリ、更新処理が動いたことを確認できただけの段階です。全く使い込んでないのでバグもあるかも。ある程度使ってみて安定してきたら、ちゃんと正式版用意すると思います。
今後の開発方針ですが、さぶろーはセカンドライフ系サービスの開発が忙しいため、Cassandraemonに関しては、積極的なコミットはしない予定です。本家のバージョンアップで追加されたAPIくらいには対応したいですけどね。
ソースコード管理はMercurialなので、機能追加されねーって場合は、自分でForkして作ってみるのも一興かもしれません。
ちなみに、プロジェクト名の由来は、セカンドライフで絶賛稼働中の、拙作、萌え系アバターサービス「クリエモン」からです。
今までクリエモンのバックグラウンドではMySQLを使っていたのですが、メンテナンスが大変なのと、NoSQL使ってみたかったという理由から、Cassandraに切り替えることにしました。クリエモンで使うCassandraドライバなので、Cassandraemonというわけです。某国民的アニメとは全く関係ないのでご注意ください( ̄∇  ̄ )