【发布时间】:2012-08-17 13:42:58
【问题描述】:
我已向我的域模型类添加了两个新属性,并相应地向数据表添加了两个属性。然后我尝试启动我的 mvc web 应用程序并得到了
The model backing the 'EFDbContext' context has changed since the database was created.
Consider using Code First Migrations to update the database
(http://go.microsoft.com/fwlink/?LinkId=238269).
已阅读以下帖子:
MVC3 and Code First Migrations
EF 4.3 Automatic Migrations Walkthrough
我尝试通过包管理器控制台Update-Database,但出现错误
Get-Package : Не удается найти параметр, соответствующий имени параметра "ProjectName".
C:\Work\MVC\packages\EntityFramework.5.0.0\tools\EntityFramework.psm1:611 знак:40
+ $package = Get-Package -ProjectName <<<< $project.FullName | ?{ $_.Id -eq 'EntityFramework' }
+ CategoryInfo : InvalidArgument: (:) [Get-Package], ParameterBindingException
+ FullyQualifiedErrorId : NamedParameterNotFound,NuGet.PowerShell.Commands.GetPackageCommand
The EntityFramework package is not installed on project 'Domain'.
但 Entityframework 安装在项目 Domain 上。我从引用中删除了它,删除了 package.config 并成功地重新安装了 EF。但是Update-Database 仍然返回相同的错误。 Update-Database -Config 也可以
我做错了什么?
编辑
非常感谢 Ladislav Mrnka,我会尝试重新表述我的问题。就我手动更改数据表而言,我预计不会使用迁移。但是我现在如何使 EF 与手动编辑的域模型类和数据表一起工作?
【问题讨论】:
-
您想使用迁移,还是只想让 EF 使用您手动更改的数据库?迁移的重点是让 EF 定义和更新您的数据库。
-
@LadislavMrnka 我“只希望 EF 使用您手动更改的数据库”...因为我是 EF 的新手,所以我想到迁移是提示对于我的问题....如果我错了,请以正确的方式指导我!
-
有多种使用 EF 的方法。您可以使用代码优先映射并手动维护数据库,或者您可以使用代码优先并让 EF 维护数据库 - 这就是迁移所做的。
-
我都是手动完成的,但我现在如何让 EF 工作?
标签: c# asp.net-mvc-3 entity-framework ef-code-first