Доступ DataContext позади IQueryable

Действительно ли возможно получить доступ к объекту DataContext позади IQueryable?

Если так, как?

12
задан Alex 8 July 2010 в 22:22
поделиться

1 ответ

DataContext специфичен для LINQ to SQL, так что, предположительно, вы говорите о запросах LINQ to SQL? Если так, то безопасного способа сделать это нет - вам придется прибегнуть к хаку, например, использовать отражение для получения приватного поля "context" базового объекта 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;
}
13
ответ дан 2 December 2019 в 21:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: