I am declaring the type prior to loading the Context, unless I totally don't understand what you mean. I created a simple sample project to duplicate the issue. I have replicated this in both VS2008 (using .Net 2.0) and VS2010 (using .Net 4.0). Here is sample code that causes the issue:
IQueryable(Of WorkRequest) = _
workrequest1 Equals WorkRequestGeometry.WorkRequest _
Where WorkRequestGeometry.ShapeWeb.STIntersects(g).Equals(1) _
Take (3) _
List(Of WorkRequest) = p.ToList
When I reference Microsoft.SqlServer.Types.dll version 10.0.0.0 it works (no results returned because I did not initialize the geometry in this sample, but it works in production just fine).
When I reference Microsoft.SqlServer.Types.dll 18.104.22.168 it throws the exception above.