私はASPMVC3の初心者で、いくつかのチュートリアルを行っています。今、私はサイトを構築しようとしています。Microsoft Webサイトのすべてのチュートリアルでは、コードファーストのアプローチを強調しています。コードを使用してモデルを定義し、データコンテキストを作成してから、エンティティフレームワークがコードに基づいてDBを作成/管理します。
DbContextから継承するEmployeesクラスとDataBaseContextクラスを設定しました。SQLサーバー上の既存の空のDBに DataBaseContextを正常にリンクする接続文字列をWeb.config接続文字列に追加しました。EDIT=それが問題でした。以下の私の答えを参照してください
しかし、scaffoldを介して作成されたEmployeesコントローラーを実行しようとすると、このエラーが発生します
Invalid object name 'dbo.Employees'.
Description: An unhandled exception occurred during the execution of...
Exception Details: System.Data.SqlClient.SqlException: Invalid object name 'dbo.Employees'.
この投稿SqlException(0x80131904):無効なオブジェクト名'dbo.Categories'に従い、DBにemployeesテーブルを作成すると、この例外がなくなることに気付きました(列名が無効であるという新しいものが表示されます)。
しかし、MVC 3の要点は、フレームワークがコードに基づいてDBを作成することだと思いました。
データベースを作成するには、Global.asax Application_start()に1行のコードが必要ですか?これが私のapplication_startメソッドです:
Sub Application_Start()
AreaRegistration.RegisterAllAreas()
RegisterGlobalFilters(GlobalFilters.Filters)
RegisterRoutes(RouteTable.Routes)
End Sub
Employeeのコードは次のとおりです。
Public Class Employee
Property EmployeeID As Integer
Property First As String
Property Last As String
Property StartDate As DateTime
Property VacationHours As Integer
Property DateOfBirth As DateTime 'in case two employees have the same name
End Class
DBコンテキストのコードは次のとおりです。
Imports System.Data.Entity
Public Class DatabaseContext
Inherits DbContext
Public Property Employee As DbSet(Of Employee)
Public Property AnnualLeave As DbSet(Of AnnualLeave)
End Class
私は何が欠けていますか?