【发布时间】:2010-08-02 14:40:19
【问题描述】:
我正在使用 LINQ 查询将 DataTable 对象内的数据转换为自定义 POCO 对象的简单 IEnumerable。
我的 LINQ 查询是:
Dim dtMessages As DataTable
'...dtMessages is instantiated ByRef in a helper data access routine... '
Dim qry = From dr As DataRow In dtMessages.Rows
Select New OutboxMsg With {
.ComputerID = dr(dcComputerID),
.MessageData = dr(dcMessageData),
.OutBoxID = dr(dcOutBoxID),
.OutBoxReceivedID = dr(dcOutBoxReceivedID),
.TrxDate = dr(dcTrxDate)
}
但是,编译器会在dr As DataRow 下抛出警告消息:
Option Strict On 不允许从“Object”到“System.Data.DataRow”的隐式转换。
为什么我会收到此错误,我需要做些什么来修复它?我原以为dtMessages.Rows 返回了一个DataRow 类型的集合。这不正确吗?
【问题讨论】:
-
展示如何声明和实例化 dtMessages。
-
@bzlm 我用更多信息更新了我的帖子
-
关掉
Option Strict!我开玩笑,我开玩笑。 -
@Marc 他应该关闭 VB.NET。 :)
-
@bzlm 虽然我通常更喜欢 C# 而不是 VB.NET,但我在 VB.NET 中编写代码是有报酬的,所以放弃它是一个非常昂贵的决定:-)。
标签: .net vb.net linq casting option-strict