Access DataContext behind IQueryable
Is it possible to access t开发者_高级运维he DataContext object behind an IQueryable?
If so, how?
DataContext is specific to LINQ to SQL, so presumably you're talking about LINQ to SQL queries? If so, there's no safe way to do this - you have to resort to a hack such as using reflection to retrieve the private "context" field of the underlying DataQuery object:
static DataContext GetContext (IQueryable q)
{
if (!q.GetType().FullName.StartsWith ("System.Data.Linq.DataQuery`1")) return null;
var field = q.GetType().GetField ("context", BindingFlags.NonPublic | BindingFlags.Instance);
if (field == null) return null;
return field.GetValue (q) as DataContext;
}
精彩评论