c# - 访问 IQueryable 后面的 DataContext

标签 c# linq datacontext iqueryable

是否可以访问 IQueryable 后面的 DataContext 对象?

如果是,怎么做到的?

最佳答案

DataContext 特定于 LINQ to SQL,所以您大概是在谈论 LINQ to SQL 查询?如果是这样,则没有安全的方法来执行此操作 - 您必须诉诸黑客,例如使用反射来检索底层 DataQuery 对象的私有(private)“上下文”字段:

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;
}

关于c# - 访问 IQueryable 后面的 DataContext,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3208439/

相关文章:

c# - 如何使用C#查找音乐文件夹目录?

c# - 使用linq删除gridview中的行

asp.net-mvc - ASP.NET MVC - 不从其他表中获取数据

c# - 在soundforge中运行C#脚本时出错

wpf - 当父类型可以不同时,如何访问 wpf 中父的 DataContext?

asp.net-mvc-4 - Entity Framework 模型更改错误

c# - 如何在 C# 中每 3 项用逗号将数组连接到字符串

C# Settings.Default.Save() 不保存?

c# - 保存 XML 时 XmlWriter 格式困惑

c# - TransactionScope 和 DataContext