<><>UPDATE: 我认为,通过向实体提供LINQ,所有WHERE的表述都翻译成了KL,而不是在法典中进行后处理,因此,以下的伪造建议必然会奏效。
因此,首先,我对你的数据库进行了同样的编造说明,并证实贵实体框架提供人所生成的数据是否实际上正在归还你所期望的数据。 @Craig Stuntz 在上述正确轨道上肯定会帮助你这样做。 一旦有了参数,我就尝试从你的代码(使用<编码>System.Data.OracleClient)中直接执行。 重心注入你从<代码>获得的相同参数值。 标 标 标 或者,你可以坚持休庭的参数,从你选择的Oracle客户的口号上调。
如果你不从Kall那里获得结果,那么,我们就能够打赢。 艺术品供应者正在以不正确的方式建造 que。
you可忽略下文所述内容,因为它适用于向目标射击,但不适用于LINQ-to-Entities。
诊断:
首先,在你的观察窗口中尝试:
q.Where(Function(c) startDate.Value <= c.DATEMODIFIED).Count()
我假定,这将恢复零,但应当消除许多其他变量,以确保你确实不会取得任何结果。
其次,我试图用两个问题来界定贵国的LINQ询问,而不是分别对(或)地点进行对比,例如:
Dim q As ObjectQuery(Of COMMENT)
If startDate.HasValue Then
q = (From c In model.COMMENT Where startDate.Value <= c.DATEMODIFIED Select c)
Else
q = (From c In model.COMMENT Select c)
End If
如果做这项工作,那么,在贵国现有的准则准则准则(准则Q)中加上哪一个条款——或许是贵国的房舍管理处的实体框架提供人的一个建议——就有些错了?
如果仍然不工作,那么,第一级(d)项的下一个步骤是核实在条款被点名的范围之内的代码,并检查这些数值是否通过。 我一定要说明如何像在C#中那样在VB建立内部断裂点,但你(通常)可以很容易地把你的lam子重新变成单独的功能,并在那里确定断裂点。 与此类似:
Sub Main()
Dim testDate As Date = New Date(2005, 1, 1)
Dim x = New List(Of Date?)
x.Add(New Date(2009, 1, 1))
x.Add(New Date(2008, 1, 1))
x.Add(New Date(2007, 1, 1))
x.Add(New Date(2006, 1, 1))
x.Add(New Date(2005, 1, 1))
x.Add(New Date(2004, 1, 1))
x.Add(New Date(2003, 1, 1))
x.Add(New Date(2002, 1, 1))
x.Add(New Date(2001, 1, 1))
Dim y = From n In x Select n
y = y.Where(Function(val) test(val, testDate))
Dim z = y.ToArray()
End Sub
Function test(ByVal date1 As Date, ByVal date2 As Date) As Boolean
test = date1 >= date2
End Function
检查贵方的比较功能中的数值——这些数值是否有效? 比较是否回去了你期望的?