簡體   English   中英

錯誤 - 當我嘗試在 .net core 2.2 中啟用遷移時,項目上未安裝實體框架包

[英]Error -The Entity Framework package is not installed on project when I try to enable migration in .net core 2.2

我正在處理一個 .NET Core 2.2 項目。 我安裝了 Entity Framework Core nuget 包。

但是當我嘗試啟用遷移時,出現錯誤

EntityFramework 包未安裝在項目上

我找到了一個解決方案,

此錯誤的一種可能性 - 在包管理器控制台中,有一個“默認項目”下拉菜單。 如果設置不正確,您將得到 EntityFramework 包未安裝在項目“x”上。 將下拉列表更改為您的 EF 項目,一切都恢復正常。

但是選擇的項目是正確的。

所以我用命令檢查了包管理器控制台中的模塊,

PM> Get-Module EntityFramework*

ModuleType Version    Name                                ExportedCommands                                                 
---------- -------    ----                                ----------------                                                 
Script     6.0.0.0    EntityFramework                     {Add-EFDefaultConnectionFactory, Add- 
EFProvider, Add-Migration...
Script     2.2.6      EntityFrameworkCore                 {Add-Migration, Drop-Database, Enable- 
Migrations, Get-DbContex...*

所以我認為在我的類庫中發現了兩個實體框架版本。 但是當我簽入管理 nuget 包選項時,找不到 Entity Framework ,只有 Entity Framework Core 存在。

在此處輸入圖片說明

如何解決這個問題?

如果您的DbContext位於不同的定制類庫中,而不是在您的啟動項目中,則您可能需要在 EF 命令中指定此項目:

使用 powershell 那將是

Add-migration NameOfMigration -Project Namespace.ToContextProject

並使用 dotnet cli

dotnet ef migrations add NameOfMigration --project relativePath/ToContextProject
dotnet ef migrations add InitialCreate -p  relativePath/ToContextProject

我有一個類似的問題,在運行 Get-Module EntityFramework* 時,我有 2 個引用,1 個用於 EntiryFramework 6.0,第二個用於 EntityFrameworkCore。

我從未安裝過 EntityFramework6。 然而,為了解決這個問題,我必須限定我想要添加遷移以及更新數據庫的框架。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM