动态LINQ."ClassName"类型中不存在属性或字段"FieldName"

OrE*_*lse 2 linq vb.net xpo dynamic-linq

我的LINQ查询如下

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

不幸的是我得到了错误 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
Run Code Online (Sandbox Code Playgroud)

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

谢谢你的时间.

Wou*_*ort 7

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

在这里你可以找到一些显示这个的文档.它看起来像.Where("Name=@0", "John")