【问题标题】:Linq2SQL and IQueryableLinq2SQL 和 IQueryable
【发布时间】:2012-10-07 11:07:57
【问题描述】:

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

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

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

可能类似于 Workaround for lack of 'nameof' operator in C# for type-safe databinding? 但只是相反的方式:)

非常欢迎任何帮助

【问题讨论】:

    标签: linq linq-to-sql iqueryable


    【解决方案1】:

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

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-12-10
      • 2011-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-18
      相关资源
      最近更新 更多