Linq2SQL和IQueryable

Linq2SQL和IQueryable,linq,linq-to-sql,iqueryable,Linq,Linq To Sql,Iqueryable,对LINQ2SQL来说还是新手,所以请原谅我的无知 我有一个用户组件,其中包括一个文本框和一个按钮。该组件用作通用ListOfValue筛选器。 该组件有一个设置IQueryable的函数,该函数传递给当用户单击控件上的按钮时打开的窗体。 表单由一个网格(c1flexgrid)组成,该网格由IQueryable中的数据填充。表单上有一个bindingsource,它将iQueryTable作为数据源获取。 用户可以在网格内进行选择,在选择一个条目后,关闭对话框,并将所选行(或更好的是从该行中选择

对LINQ2SQL来说还是新手,所以请原谅我的无知

我有一个用户组件,其中包括一个文本框和一个按钮。该组件用作通用ListOfValue筛选器。 该组件有一个设置IQueryable的函数,该函数传递给当用户单击控件上的按钮时打开的窗体。 表单由一个网格(c1flexgrid)组成,该网格由IQueryable中的数据填充。表单上有一个bindingsource,它将iQueryTable作为数据源获取。 用户可以在网格内进行选择,在选择一个条目后,关闭对话框,并将所选行(或更好的是从该行中选择的LINQ2SQL对象)传递回控件。 在此控件上,我希望显示选定对象中的一个特定字段。该字段的名称作为字符串传递给用户控件

我的问题是,我不知道如何从“通用”LINQ2SQL对象获取字段数据。 在调试器中,我可以看到所选对象属于特定的enity类型(对应于查询)

可能有点类似于 但恰恰相反:)


非常欢迎提供任何帮助

我假设在IQueryable中,您在设计时不知道t类型。如果这是正确的,您需要使用反射来获得所需的值

var value = typeof(T).GetProperty("MyField").GetValue(instance, null);
或者,将实例强制转换为实现字段的公共基类型

CommonBase castInstance = (CommonBase)instance;
var value = castInstance.MyField;

我假设在IQueryable中,您在设计时不知道类型t。如果这是正确的,您需要使用反射来获得所需的值

var value = typeof(T).GetProperty("MyField").GetValue(instance, null);
或者,将实例强制转换为实现字段的公共基类型

CommonBase castInstance = (CommonBase)instance;
var value = castInstance.MyField;