我在代码隐藏文件的 asp.net 页面上有一个代码段。我决定将其移至模块(general_functions.vb)中的公共(public)子例程中。然而,一旦我这样做了,代码就不再工作了——它抛出了一个错误。
在原始代码隐藏中,我用如下调用替换了原始代码:
DeleteResidency(people_id, semester, year)
现在在我的general_functions.vb中我创建了一个公共(public)子例程,如下所示:
Public Sub DeleteResidency(delpeople_id, delsemester, delyear)
Using dbContext as pbu_housingEntities = New pbu_housingEntities
Dim remove_selection = (From p in dbContext.Residents _
Where p.people_code_id = delpeople_id _
Where p.year = delyear _
Where p.semester = delsemester _
Order By p.id Descending _
Select p).FirstOrDefault
End Using
End Sub
还有更多的代码,但上面的代码引发了错误。我得到的错误是:
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.
谁能帮我理解为什么会发生这种情况?
最佳答案
在DeleteResidency子例程的定义中明确输入您的参数。这使得编译器可以更少地推断并防止这些类型的错误。
关于asp.net - LINQ to Entities 无法识别 System.ObjectCompareObjectEqual 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9797001/