Можно ли получить доступ к объекту DataContext за IQueryable?
Если да, то как?
Ответ 1
DataContext специфичен для LINQ to SQL, поэтому, предположительно, вы говорите о запросах LINQ to SQL? Если это так, нет безопасного способа сделать это - вам нужно прибегнуть к взлому, например, используя рефлексию для извлечения частного контекстного поля базового объекта DataQuery:
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;
}