【发布时间】:2017-08-20 13:01:09
【问题描述】:
升级到 ASP.NET Core 2.0 后,我似乎无法再创建迁移。
我来了
"在类上调用方法 'BuildWebHost' 时发生错误 '程序'。在没有应用程序服务提供商的情况下继续。错误: 发生一个或多个错误。 (无法打开由请求的数据库“...” 登录。登录失败。用户 '...' 登录失败"
和
“无法创建“MyContext”类型的对象。添加一个实现 将“IDesignTimeDbContextFactory”添加到项目中,或参见 https://go.microsoft.com/fwlink/?linkid=851728 更多模式 在设计时支持。”
我之前运行的命令是$ dotnet ef migrations add InitialCreate --startup-project "..\Web"(来自带有 DBContext 的项目/文件夹)。
连接字符串:"Server=(localdb)\\mssqllocaldb;Database=database;Trusted_Connection=True;MultipleActiveResultSets=true"
这是我的 Program.cs
public class Program
{
public static void Main(string[] args)
{
BuildWebHost(args).Run();
}
public static IWebHost BuildWebHost(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseStartup<Startup>()
.Build();
}
【问题讨论】:
-
可能问题不在 Program.cs 中。这可能是在您的 Configure 方法末尾使用指令加载种子数据: DbInitializer.Initialize (context);如果您有该指令,请将其注释: //DbInitializer.Initialize(context);然后运行迁移说明进行测试。如果出现问题,则跟进 DbInitializer.cs 类。
-
你的 MyContext 类是否在另一个类库项目中?
-
这里有同样的问题,上下文在其他库中。如果 id 在上下文中添加了一个无参数的构造函数,则迁移正在工作,但出现相同的错误:(在类 'Program' 上调用方法 'BuildWebHost' 时发生错误。在没有应用程序服务提供者的情况下继续。错误:未设置对象引用到一个对象的实例。)
-
你最后解决了吗?
-
@MiguelTorresC 感谢您的评论。我注释掉了我的播种方法和迁移再次开始工作。非常感谢!!!
标签: c# asp.net-core asp.net-core-mvc entity-framework-core asp.net-core-2.0