【问题标题】:Object not queryable对象不可查询
【发布时间】:2012-07-16 10:39:00
【问题描述】:

我有一个带有“authors”表的数据库“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”。我该怎么办?

【问题讨论】:

  • dbo(在_Default中)在哪里定义?

标签: asp.net database vb.net linq


【解决方案1】:

这就是问题所在:

Dim authors As Object

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

说实话,您根本不清楚为什么要引入自己的 authors 字段 - 我希望生成的上下文具有 Authors 类型为 Table<Author> 或类似的属性。

(顺便说一下,我注意到您还尝试将GridView1.DataSource 设置为author 而不是authors...为什么要这样做?您期望author 字段中的值是多少? _Default 有吗?)

【讨论】:

    猜你喜欢
    • 2013-04-27
    • 2018-02-09
    • 2013-03-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-16
    相关资源
    最近更新 更多