Microsoft MVPであるMehfuz Hossain氏(リンク)がLINQ-to-Twitterプロバイダを作成した。しかしながら、これはLINQがデータベースにあるデータにアクセスするためだ けのフレームワークではなく、tweetを含むあらゆる種類のオブジェクトと併用することができることを実証する、もう1つの例である。
LINQ-to-TwitterはTwitter API(リンク)のC#/.NETラッパーであるYedda(リンク)を使用する。Status、User、FriendsなどのTwitterメソッドに関して、YeddaはXML、JSON、RSSもしくはATOMとして結果を返す。
LINQ-to-TwitterはYeddaが返したXMLを受け取る。そしてLINQプロバイダを作成するための基本的な機能を提供する、無償のライブ ラリであるLINQExtender(リンク)を使用して照会可能オブジェクトに変換する。Hossain氏によると、LINQExtenderを使用してプロバイ ダを作成するには、2つの段階が関わる。
まず最初に、IQueryObjectを実装することでクエリオブジェクトを定義し、Query
successorを作成し、メソッドをオーバーライドする。
クエリの例は以下のようになる。
TwitterContext context = new TwitterConext(); var query = from twit in context where twit.Username == "myuser" && twit.Password == "mypass" && twit.Timeline == Timeline.Friends orderby twit.LastUpdated descending select twit;
しかしながらLINQExtenderに基づいた別のLINQプロバイダは、LINQ.Flickr(リンク)であり、Flickrに写真を照会したり、追加したり、削除したり、コメントを付けたりする。MITライセンス(リンク)のもと、LINQExtenderは使用可能である。
役立つリンク:LINQ-to-Twitterソースコード(ZIP)、LinqExtender(リンク)、 Using LinqExtender Tutorial(リンク)。