asp.net - LINQ to Entities 无法识别 System.ObjectCompareObjectEqual 方法

标签 asp.net vb.net entity-framework entity-framework-4

我在代码隐藏文件的 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/

相关文章:

vb.net - (另一个).net Excel 僵尸问题

SQL 语句作为列表框 VB.NET 的数据源

c# - EF 预编译 View 和自定义查询

c# - 对象实例已被处置(EF)

c# - Windows 应用程序在使用后台工作进程时被挂起

asp.net web 应用程序启动时间。如何优化?

asp.net - VB.Net MailMessage文本编码问题

c# - 在 Entity Framework 核心中合并迁移

asp.net - SQL Server报表服务和其他报表工具有什么区别

asp.net - 禁用 MSBuild TypeScript 编译