Access DataContext behind IQueryable

后端 未结 1 1600
失恋的感觉
失恋的感觉 2020-12-31 08:48

Is it possible to access the DataContext object behind an IQueryable?

If so, how?

相关标签:
1条回答
  • 2020-12-31 09:50

    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;
    }
    
    0 讨论(0)
提交回复
热议问题