gpt4 book ai didi

vb.net - 动态 LINQ。 'FieldName' 类型中不存在属性或字段 'ClassName'

转载 作者:行者123 更新时间:2023-12-04 21:29:41 25 4
gpt4 key购买 nike

我的 LINQ 查询如下

Dim Query = From t In New XPQuery(Of xUser)(Xpo.Session.DefaultSession)
.Where("Name=John").Select("new (Name as FirstName)")

不幸的是我收到错误 No property or field 'John' exists in type 'xUser'
当然,我的 xUser 类中不存在这样的属性,但是我可以解决这个问题吗?

在 DynamicLinq 类中阅读后,我发现了这个函数
Function FindPropertyOrField(ByVal type As Type, ByVal memberName As String, ByVal staticAccess As Boolean) As MemberInfo
Dim flags As BindingFlags = BindingFlags.Public Or BindingFlags.DeclaredOnly Or _
If(staticAccess, BindingFlags.Static, BindingFlags.Instance)
For Each t As Type In SelfAndBaseTypes(Type)
Dim members As MemberInfo() = t.FindMembers(MemberTypes.Property Or MemberTypes.Field, _
flags, type.FilterNameIgnoreCase, memberName)
If members.Length <> 0 Then Return members(0)
Next
Return Nothing
End Function

如何编辑我的“错误”查询?我在这里做错了什么?

谢谢你的时间。

最佳答案

尝试将 'John' 设置为参数,而不是直接在字符串中。

Here你可以找到一些说明这一点的文档。它看起来像 .Where("Name=@0", "John")

关于vb.net - 动态 LINQ。 'FieldName' 类型中不存在属性或字段 'ClassName',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8133779/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com