我已經將兩個新屬性添加到我的域模型類,並將兩個屬性相應地添加到數據表中。然後我試圖啓動我的MVC Web應用程序,並得到無法使EF Code First與手動更改的數據庫一起工作
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'.
但是實體框架安裝在項目域上。我將它從引用中刪除,刪除package.config併成功重新安裝EF。但Update-Database
仍然返回相同的錯誤。 Update-Database -Config
也可以做
我做錯了什麼?
編輯
非常感謝拉吉斯拉夫Mrnka,我會嘗試重組我的問題。據我手動更改我的數據表,我不希望使用遷移。但是,我現在怎樣才能使用手動編輯的域模型類和數據表使EF工作?
你想使用遷移或者你只是想EF與您手動更改數據庫的工作嗎?遷移的重點是讓EF定義並更新您的數據庫。 –
@LadislavMrnka我「*只是想EF與你手動更改的數據庫一起工作*」......因爲我是EF新手,我認爲遷移是我的問題提示......如果我錯了,請指導我正確的方式! – horgh
有多種方法可以使用EF。您可以使用代碼優先映射並手動維護數據庫,也可以先使用代碼並讓EF維護數據庫 - 這就是遷移所做的事情。 –