如果从类调用相同的方法,则控制器中的工作方法失败

时间:2014-05-02 14:56:50

标签: vb.net asp.net-web-api2

我的控制器中有一个功能正常。

    <HttpGet> _
    <Route("SymbolExists/{symbol}", Name:="symbolexistssymbol")> _
    Function SymbolExists(ByVal symbol As String) As Boolean
        'Return SymbolHelpers.SymbolExists(symbol)
        Return symbCtx.symbols.Count(Function(e) e.Symbol1 = symbol) > 0
    End Function

我需要在我的代码后面提供相同的功能,并且我有一个SymbolHelpers类,它包含所有这些功能。我希望能够从控制器中的类调用该函数,但是当我这样做时会出现以下错误(下面显示的错误及其在控制器中的完全相同的代码!!)

 Public Shared Function SymbolExists(ByVal symbol) As Boolean
        Using symbCtx As New SymbolsEntities()
            Return symbCtx.symbols.Count(Function(e) e.Symbol1 = symbol) > 0
        End Using
    End Function

***LINQ to Entities does not recognize the method 'System.Object CompareObjectEqual(System.Object, System.Object, Boolean)' method, and this method cannot be translated into a store expression.*** 

1 个答案:

答案 0 :(得分:0)

您在第二个代码示例中缺少符号的类型声明。

Public Shared Function SymbolExists(ByVal symbol as String) As Boolean

如果没有类型声明,编译器似乎默认为对象与对象的比较,LINQ to Entities无法翻译。