实体框架:谓词生成器变量在声明为public时会产生错误

时间:2015-02-19 00:10:01

标签: vb.net entity-framework

我正在使用此库中的实体框架和PredicateBuilderhttps://petemontgomery.wordpress.com/2011/02/10/a-universal-predicatebuilder/

我有2个案例:

  1. 这没有问题:

    Private sub Mysub
       Dim pred1 = PredicateBuilder.True(Of MyObject)
       pred1 = pred1.And(Function(t2) t2.nr=5))
       ........ 
    End sub
    
  2. 这会产生错误:

     Module Module1
       Public pred1 = PredicateBuilder.True(Of MyObject)
      ...
     End Module
     .....
     Private sub Mysub
       pred1=pred1.And(Function(t2) t2.nr=5))
        ........ 
     End sub
    

    错误是:

      

    未处理的类型' System.MissingMemberException'发生在Microsoft.VisualBasic.dll

         

    其他信息:重载解析失败,因为无法访问'和'接受这个数量的论点。

  3. 出了什么问题?

    谢谢!

1 个答案:

答案 0 :(得分:0)

类型推断仅适用于局部变量(使用Option Infer On时)。在第二种情况下,VB可以做的最好的事情是假设'pred1'的类型是'Object'(这是省略类型时的遗留VB行为)。