0

我有一个带有“作者”表的数据库“Pubs”。我通过拖动“作者”从数据库中创建了一个 dbml 文件。

这是“Default.aspx.vb”

Public Class _Default
    Inherits System.Web.UI.Page
    Dim author As Object
    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        Dim db As New PubsContext
        Dim authors = From p In dbo.authors _
                       Select p

        GridView1.DataSource = author
        GridView1.DataBind()
    End Sub
End Class

这是它的类:“Class1.vb”

Partial Public Class PubsContext
    Dim authors As Object
    Public Function GetProductsByCategory(ByVal id1 As Integer) As IEnumerable(Of authors)
        Return From p In Me.authors _
               Where p.au_id = id1 _
               Select p
    End Function
End Class

错误代码:“'Object' 类型的表达式不可查询。确保您没有丢失 LINQ 的程序集引用和/或命名空间导入”。

在参考文献中已经有一个“System.Data.Linq”。我应该怎么办?

4

1 回答 1

3

好吧,这就是问题所在:

Dim authors As Object

那只是一个对象。打电话等是什么意思?你在哪里给它一个价值?弄清楚类型应该什么,确保你给它一个合适的值,你应该没问题。SelectWhere

老实说,目前还不清楚你为什么要引入自己的authors领域——我希望生成的上下文具有Authors类型Table<Author>或类似的属性。

(我注意到您还试图设置GridView1.DataSource为,author而不是authors,顺便说一句...您为什么要这样做?您希望该author字段_Default具有什么价值?)

于 2012-07-17T13:38:27.147 回答