快速概览:
Visual Basic 2010 WinForm 应用程序从 DB2 中提取数据。该应用程序允许用户过滤数据。
问题:
我的 LINQ 查询(或对象定义)有问题,因为我无法访问数据集中的字段。从 DB2 中提取数据很好,我得到该数据并将其存储为 IEnumerable。
我计划在断开连接的情况下运行这个应用程序,因为它对 95% 的用户是只读的,并且它可以访问 100,000 多条记录。因此,我有两个数据集:1)“data”,它是从 DB2 中提取的完整数据集(我不打算对其进行任何修改),(2)“filteredData”,它是基于数据的子集用户输入的过滤器。
Dim data As IEnumerable
Dim dataFiltered = From record in data
Select record
'Filter data based on version
Select case uxCodeVersion.Text
Case "10"
dataFiltered = From rec in dataFiltered
Where rec.
... (other parts of case statement removed)
End Select
这是我的问题。我期待看到“rec”中的字段列表。(例如 rec.CodeVersion);但是,我只接收对象方法(Equals、GetHashCode、GetType、ReferenceEquals、ToString)。
我错过了什么简单的事情?
性能也是一个问题,但我一次想出一个问题......
谢谢你,
布赖恩。
这是下面提供的答案。
在定义数据时,我需要将其定义为通用列表 DTO。所以在我的情况下,这变成:
Dim data As IEnumerable(Of DataAccessLayer.DiagnosisAndDiagnosisIndustryCombinedDTO)
然后在访问代码时,它和以前一样,虽然我暂时取出了dataFiltered字段并只是使用了数据。
dataFiltered = From rec in data
Where rec.CodeVersion = uxCodeVersion.Text