Mehfuz Hossain, a Microsoft MVP, has created a LINQ-to-Twitter provider. This is yet another example demonstrating that LINQ is not a framework to access just data in a database but it can be used with all sorts of objects, including tweets.
LINQ-to-Twitter makes use of Yedda, a C#/.NET wrapper for the Twitter API. For Twitter methods like Status, User, Friends, Yedda returns the result as XML, JSON, RSS or ATOM.
LINQ-to-Twitter takes the Yedda returned XML and converts it into queriable objects using LINQExtender, a free library which provides basic functionality for creating LINQ providers. There are two steps involved in creating a provider using LINQExtender, according to Hossain:
First you have to define a query object by implementing IQueryObject and then you have made a Query<T> successor and override few methods.
A query example looks like this:
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;
Yet another LINQ provider based on LINQExtender is LINQ.Flickr for querying, adding, deleting, commenting, etc. photos on Flickr. LINQExtender can be used under MIT license.
Useful links: LINQ-to-Twitter source code (ZIP), LinqExtender, Using LinqExtender Tutorial.