gpt4 book ai didi

asp.net-mvc - Asp mvc 3 noobie : Why is the code-first method not building my DB on sql server?

转载 作者:行者123 更新时间:2023-12-04 09:55:15 25 4
gpt4 key购买 nike

我是一名 ASP MVC 3 noobie,已经完成了一些教程。现在我正在尝试建立一个网站。微软网站上的所有教程都强调代码优先的方法:你用代码定义你的模型,然后创建一个数据上下文,然后 Entity Framework 根据你的代码创建/管理数据库。

我设置了一个Employees 类和一个继承自DbContext 的DataBaseContext 类。我向 Web.config 连接字符串添加了一个连接字符串,该字符串成功链接了 DataBaseContext 到 SQL 服务器上已经存在的空数据库。 编辑=这就是问题所在。看我下面的回答

但是当我尝试运行通过脚手架创建的员工 Controller 时,我收到此错误

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): Invalid object name 'dbo.Categories'并意识到如果我在数据库上创建一个员工表,这个异常就会消失(我得到一个新的,说列名无效)。

但我认为 MVC 3 的全部意义在于该框架将根据代码为您创建数据库。

也许我需要 Global.asax Application_start() 中的一行代码来创建数据库?这是我的 application_start 方法:
Sub Application_Start()
AreaRegistration.RegisterAllAreas()
RegisterGlobalFilters(GlobalFilters.Filters)
RegisterRoutes(RouteTable.Routes)
End Sub

这是员工的代码:
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

这是数据库上下文的代码:
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

我错过了什么?

最佳答案

默认情况下,EF 使用 DropCreateDatabaseIfModelChanges<TContext>数据库初始化程序。据此MSDN :

An implementation of IDatabaseInitializer<TContext> that will delete, recreate, and optionally re-seed the database with data only if the model has changed since the database was created. This is achieved by writing a hash of the store model to the database when it is created and then comparing that hash with one generated from the current model.



由于数据库是手动创建的,EF 找不到散列并决定不执行任何进一步的初始化逻辑。

关于asp.net-mvc - Asp mvc 3 noobie : Why is the code-first method not building my DB on sql server?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11940809/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com