我有几个项目使用 Asp.Net Core 1.0 和 Entity Framework Core 1.1.0
我有一个代码优先迁移方法,我通过 Visual Studio 2015 发布到 Azure。
我过去在 Azure Sql Server 中应用迁移的方式是在发布时启用一个复选框:“ Entity Framework 迁移 - 在发布时应用此迁移”,我在其中输入了一个连接字符串。
我更新了几个包,现在对于我的一个项目,我看不到这个选项来在发布时应用迁移。我可以看到 它试图发现数据上下文,但没有找到任何东西 (虽然它在同一个项目中..)
见下文:
我怀疑它与项目的某些依赖版本有关,而不是与我的 IDE 无关,因为我对两个项目使用相同的 Visual Studio(2015 更新 3)。
我找不到这方面的信息。什么依赖允许这个选项?如果我发现哪个版本有问题,那么剩下的问题是如何在发布时应用迁移?
两个项目在 Web 项目中都有迁移,并且两个项目都使用
"Microsoft.AspNetCore.Identity.EntityFrameworkCore": "1.1.0"
更新 1 : 我设法找到了这其中涉及的内容。看来,如果我使用这些依赖项:
"Microsoft.EntityFrameworkCore.Tools": "1.0.0-preview2-final",
"Microsoft.EntityFrameworkCore.Design": "1.0.0-preview2-final"
Visual Studio 能够找到数据上下文并提供在发布时应用迁移的选项。但是,如果我使用这些依赖项的较新版本,例如:
"Microsoft.EntityFrameworkCore.Tools": "1.1.0-preview4-final",
"Microsoft.EntityFrameworkCore.Design": "1.1.0"
然后应用迁移的选项消失了,VS 在发布时找不到任何数据上下文。
我需要了解迁移事物和 Asp.Net Core 的最新状态。
最佳答案
在创建空的 ASP.NET Core Web API 项目并添加迁移后,我在 Visual Studio 2017 中偶然发现了一个非常相似的问题(发布无法在项目中查找要发布的数据上下文)。
为了使它工作,我在 .csproj 文件中包含了以下几行:
<DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="1.0.0" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="1.1.1" />
关于visual-studio-2015 - 在发布时应用 EF 迁移仅适用于某些 Web 项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41291117/