我有一个服务调用,它将日期和时间作为字符串从SAP Web服务返回,我试图将这些字符串解析为本地模型中的日期时间对象。
到目前为止,我已经删除了该方法,但我注意到的第一件事是编译器抱怨它无法将日期转换为非委托类型。
错误
错误1 Lambda表达式无法转换为'Date',因为'Date' 不是委托类型。 C:\ Users \ phil.murray \ Desktop \ SAP Orders Test \ WindowsApplication1 \ Form1.vb 43 57 WindowsApplication1
代码
_ordersProxy.Z_SPIN_ORDERS(_header, _order, _code)
Return From h In header.OrderBy(Function(w) w.AUFNR)
Select New Order With {.Aufnr = h.AUFNR, .BatchType = h.BATCH_TYPE,
.EngineType = h.ENGINE_TYPE, .ProgrammedQuantity = h.PROGRAMMED_QTY,
.StartDate = Function()
Dim startDate As DateTime
Dim startTime As DateTime
Date.TryParse(h.START_DATE, startDate)
Date.TryParse(h.START_TIME, startTime)
Return New DateTime(startDate.Year, startDate.Month, startDate.Day,
startTime.Hour, startTime.Minute, startTime.Second)
End Function}
本地模特
Public Class Order
Public Property Aufnr As String
Public Property EngineType As String
Public Property ProgrammedQuantity As Int16
Public Property BatchType As String
Public Property StartDate As DateTime
Public Property OrderParts As IList(Of Part)
Public Property OrderProcessCodes As IList(Of ProcessCode)
End Class
使用lambda表达式解析此字符串时我缺少什么?
答案 0 :(得分:1)
问题是StartDate
可能是DateTime
类型的属性 - 而您的lambda表达式可以赋予Func(Of DateTime)
。
你可以调用 lambda表达式来设置StartDate
,但从根本上说如果属性是DateTime
类型,你需要给它一个值这种类型的em>,不仅仅是一个可以执行以获取值的函数。
当然,另一种替代方案(可能)是更改StartDate
属性类型。目前还不清楚你到底想要做什么,或者你正在设置这个属性的对象是什么类型。