When comes the time to use Silverlight out of browser functionality, we may have to face the fact that Silverlight might be used without an internet connection. In this particular case, the application must implement a local cache.
I have found some very interesting database solution available for Silverlight.
siaqodb (in beta when this post was published)
This database is using LINQ natively to retrieve the data which is stored in the isolated storage on the client machine.
var p = new Product { Name = "Pencil", Price = 0.25 };
db.StoreObject(product);
var query = from Product p in db
where p.Name == "Pencil"
select p;
Silverlight Database (in beta when this post was published)
Again, this database is using the isolated storage to persist locally the offline data.
var db = Database.CreateDatabase("test");
db.CreateTable<Person>();
var person = new Person{ FirstName = "John", LastName = "Doe" };
db.Table<Person>().Add(person);
var q = from p in db.Table<Person>()
where p.LastName == "Doe"
select p;
Others
db4o : They are working on a Silverlight port.
EffiProzSL : A port of the EffiProz database.
Perst : A port from Java.
Experimentations
Google gears and silverlight
C#-SQLite running in Silverlight
Happy new year!