Vb.net 未定义DbContext类型

Vb.net 未定义DbContext类型,vb.net,entity-framework,dbcontext,entity-framework-6.1,Vb.net,Entity Framework,Dbcontext,Entity Framework 6.1,使用EF 6.1。我创建了两个表类文件: Public Class Student Public Property StudentID() As Integer Public Property StudentName() As String Public Property DateOfBirth() As DateTime End Class Public Class Standard Public Property StandardID() As Int

使用EF 6.1。我创建了两个表类文件:

Public Class Student

    Public Property StudentID() As Integer
    Public Property StudentName() As String
    Public Property DateOfBirth() As DateTime

End Class

Public Class Standard

    Public Property StandardID() As Integer
    Public Property StandardName() As String

End Class
还创建了一个DbContext文件SchoolContext.vb:

Imports System.Data.Entity

Namespace TestDataAccess

    Public Class SchoolContext
        Inherits DbContext

        Public Sub New()
            MyBase.New(ConfigurationManager.ConnectionStrings("dbConnString").ConnectionString)
        End Sub

        Private _Students As DbSet(Of Student)

        Private _Standards As DbSet(Of Standard)

    End Class

End Namespace
在我的测试页面中,我使用以下内容引用DbContext文件:

Dim context As SchoolContext = New SchoolContext
但它不断给出错误类型“SchoolContext”未定义。甚至尝试导入命名空间“TestDataAccess”,但仍然收到错误。我确实通过NuGet将EF安装到我的项目中,它显示在我的packages.config文件中,所以我知道这不是问题所在

<package id="EntityFramework" version="6.1.2" targetFramework="net451" />

有什么不对劲的地方吗?

我不太熟悉vb,但是您的DbContext的范围是什么。
标准和学生不应该是公共的而不是私有的吗?

您需要的是EntityFramework.dll引用,而不是System.Data.Entity。

您的测试页面中似乎缺少导入语句。如果您右键单击SchoolContext类型为的red squiggle,它是否提供了一个通过包含名称空间来解析的选项?Travis,不,red squiggle只是想让我将SchoolContext更改为HttpContext。即使我主要导入DbContext名称空间,即使它不被识别。是的,让_标准和_学生像Rik建议的那样公开,我可以在我的解决方案资源管理器中的引用下的引用列表中看到EntityFramework.dll。只要我能在那里看到,我就应该很好,对吗?或者我该去查别的地方吗?嗨,真奇怪。我想您可能想删除该引用并重新安装,希望它能正常工作。除此之外,我没有任何建议抱歉Matrik,是的,好眼力。在将属性语句缩减为一行之后,我忘记了修复该代码。这并不能解决“我的类型未定义”错误,但很遗憾。