1

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

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

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

可能类似于 在 C# 中缺少用于类型安全数据绑定的“nameof”运算符的解决方法? 但只是相反的方式:)

非常欢迎任何帮助

4

1 回答 1

1

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

var value = typeof(T).GetProperty("MyField").GetValue(instance, null);

或者,将实例转换为实现您的字段的通用基类型。

CommonBase castInstance = (CommonBase)instance;
var value = castInstance.MyField;
于 2012-10-07T11:23:07.083 回答