Be careful when you compare the GUID with a string
A GUID is a 128-bit number calculated so that it is globally unique after 100 nanoseconds (or so).
However, if you call guid.tostring(), it will return a string in low-case, meanwhile, the GUID in database will be in upper-case.
That could result in some weird problems, unfortunately, I met this kind of issue last week in a project developed in Euro.
You could also vist http://henbo.spaces.live.com/Blog/cns!2E073207A544E12!330.entry, he posted a quite long essay for the same problem.
In addition, http://fodonnel.wordpress.com/ shows the same issue when NHibernate and Sqlite.Net working together.