0

テーブル「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」があります。私は何をすべきか?

4

1 に答える 1

3

これが問題です。

Dim authors As Object

それはただのオブジェクトです。その上で、などと呼ぶのはどういう意味ですか?どこに価値を与えていますか?タイプが実際にどうあるべきかを理解し、最初に適切な値を与えることを確認してください。そうすれば問題ないはずです。SelectWhere

正直なところ、なぜ独自のauthorsフィールドを導入しているのかは明確ではありません。生成されたコンテキストには、Authorsタイプなどのプロパティがあると思いTable<Author>ます。

(ちなみに、あなたはではなくに設定しよGridView1.DataSourceうとしていることに注意してください...なぜそれをしているのですか?フィールドにどのような価値があると期待していますか?)authorauthorsauthor_Default

于 2012-07-17T13:38:27.147 に答える