我得到了以下代码,但我总是得到相同的错误,但我无法找出为什么在第一级(所有函数)中我可以使用可以比较复杂对象但在 Any 函数中它给了我以下错误.
无法创建“ConsoleApplication1.Param”类型的常量值。此上下文仅支持原始类型(“例如 Int32、String 和 Guid”)
这是代码
Dim listParams As List(Of Param) = Nothing
listParams = New List(Of Param)(2)
Dim new_param as Param
new_param = new Param()
new_param.Name = "p1"
new_param.Value = "a"
listParams.Add(new_param)
new_param = new Param()
new_param.Name = "p2"
new_param.Value = "231"
listParams.Add(new_param)
Dim aux As IQueryable(Of Part)
aux = From p In CurrentBD.Parts
Where p.code = find_pattern _
And p.version = find_version _
And p.Params.Count = listParams.Count _
And p.Params.All(Function(p1 As Parametro) listParams.Any(Function(p2) p2.Name = p1.Name AndAlso (p2.Value = p1.Value OrElse p1.Value = "IRRELEVANT")) )
Select p
Dim hist_part as Part
hist_part = aux.FirstOrDefault()
查询的重点是获取所有注册的属于pattern的part,但是part的参数的值和名称都匹配到列表中的一次
难道我做错了什么?明明是我,什么???
提前感谢任何可以帮助我或给我线索的人。