2016-02-06 29 views
0

我已經看到類似這樣的幾個問題,但似乎沒有人回答我的問題 - 最常見的答案似乎是'延遲加載 - 數據庫/表將在您嘗試訪問它們」在這種情況下我:以代碼優先方式創建數據庫

 Dim students As List(Of Student) = db.Students.ToList 

以上是拋出一個錯誤,因爲學生表是空/空。

這裏是我的(很簡單)SchoolContext:

Imports System.Data.Entity 

Public Class SchoolContext 
Inherits DbContext 

Public Students As DbSet(Of Student) 

End Class 

這裏是我SchoolInitialiser類:

Imports System.Data.Entity 

Public Class SchoolInitializer 
Inherits DropCreateDatabaseAlways(Of SchoolContext) 


Protected Overrides Sub Seed(context As SchoolContext) 
    Dim students As List(Of Student) = New List(Of Student) From { 
    New Student("Jessica", "Jones"), 
    New Student("Chuck", "Norris"), 
    New Student("Rambo", "John") 
    } 

    For Each student In students 
     context.Students.Add(student) 
    Next 

    context.SaveChanges() 

End Sub 
End Class 

而且在web.config中我的連接字符串:

<add name="SchoolContext" connectionString="Data Source= (LocalDb)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\school.mdf;Initial Catalog=aspnet-WebApplication1-20160205092922;Integrated Security=True" providerName="System.Data.SqlClient" /> 

而且終於我的global.asax我在調用SetInitialize函數

Imports System.Data.Entity 
Imports System.Web.Optimization 

Public Class MvcApplication 
Inherits System.Web.HttpApplication 

Protected Sub Application_Start() 
    Database.SetInitializer(New SchoolInitializer) 
    AreaRegistration.RegisterAllAreas() 
    FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters) 
    RouteConfig.RegisterRoutes(RouteTable.Routes) 
    BundleConfig.RegisterBundles(BundleTable.Bundles) 
End Sub 
End Class 

沒有數據庫似乎在我的AppData文件夾中創建,據我所知,一切都設置好了嗎?有什麼建議麼?

我下面下面的教程:https://www.youtube.com/watch?v=VAtVv1Q7ufM

謝謝!

+0

我應該在我的控制器都提到,我越來越喜歡這個數據庫方面: 昏暗的分貝作爲SchoolContext =新SchoolContext 昏暗的學生名單(學生) = db.Students.ToList –

回答

0

所以我想出了這一個,以防有人遇到類似的問題。我使用VB,所以我想像一些事情從C#翻譯中丟失了。

這其實有幾個問題。第一個是StudentContext類需要表的屬性,而不是全局變量:

'NOT Public Students As DbSet(Of Student) 
Public Property Students() As DbSet(Of Student) 

在此之後,錯誤更容易理解。第二個錯誤是由於我的學生模型上沒有鑰匙,所以我加了這個:

<Key()> 
Public Property _StudentID As Integer 

給屬性和全局變量。接下來,由於某種原因它沒有連接到數據庫,所以我不得不下載並安裝localDB。

最後,它抱怨說我沒有無參數的構造函數。所以我不得不在我的學生模型中添加一個空構造函數。

最後 - 一切工作(耶)

相關問題