当前位置: 首页 > 编程语言 > C#

EFCore-Table'-.__EFMigrationsHistory'doesnotexistshare

时间:2023-04-10 13:31:20 C#

EFCore-Table'*.__EFMigrationsHistory'doesnotexist我想强调的是,这是.NETCore,关于EF6.0的线程不存在应用问题我创建了我的DbContext并将其添加到DI,但是当我执行dotnetefdatabaseupdate-v它不想创建迁移表__EFMigrationsHistory。有没有我应该首先执行的其他命令,或者这是EFCoreMySQL适配器的错误?MainDbContext使用Microsoft.EntityFrameworkCore;使用MySQL.Data.EntityFrameworkCore.Extensions;使用网络模型;命名空间Web.Infrastructure{publicclassMainDbContext:DbContext{publicDbSetUsers{get;放;.UseMySQL("这里是连接字符串");base.OnConfiguring(optionsBuilder);}}}查找DbContext类时出错...使用上下文“MainDbContext”。在服务器“localhost”上使用数据库“db”。MySql.Data.MySqlClient.MySqlException:表'db.__EFMigrationsHistory'不存在于表'db.__EFMigrationsHistory'不存在于“`project.json{“dependencies”:{“Microsoft.NETCore.App”:{“version”:“1.0.1”,“类型”:“平台”},“Microsoft.AspNetCore.Diagnostics”:“1.0.0”,“Microsoft.AspNetCore.Mvc”:“1.0.1”,“Microsoft.AspNetCore.Razor。工具":{"version":"1.0.0-preview2-final","type":"build"},"Microsoft.AspNetCore.Routing":"1.0.1","Microsoft.AspNetCore.Server.IISIntegration":“1.0.0”,“Microsoft.AspNetCore.Server.Kestrel”:“1.0.1”,“Microsoft.AspNetCore.StaticFiles”:“1.0.0”,“Microsoft.Extensions.Configuration.EnvironmentVariables”:“1.0。0","Microsoft.Extensions.Configuration.Json":"1.0.0","Microsoft.Extensions.Logging":"1.0.0","Microsoft.Extensions.Logging.Console":"1.0.0","Microsoft.Extensions.Logging.Debug":"1.0.0","Microsoft.Extensions.Options.ConfigurationExtensions":"1.0.0","Microsoft.VisualStudio.Web.BrowserLink.Loader":"14.0.0","BundlerMinifier.Core":"2.2.301","WebMarkupMin.AspNetCore1":"2.2.1","MySql.Data.EntityFrameworkCore":"7.0.6-IR31","Microsoft.EntityFrameworkCore.Design":"1.0.0-preview2-final"},"tools":{"Microsoft.AspNetCore.Razor.Tools":"1.0.0-preview2-final","Microsoft.AspNetCore.Server.IISIntegration.Tools":"1.0.0-preview2-final","Microsoft.EntityFrameworkCore.Tools":"1.0.0-preview2-final"},"frameworks":{"netcoreapp1.0":{"imports":["dotnet5.6","portable-net45+win8"]}},"buildOptions":{"emitEntryPoint":true,"preserveCompilationContext":true},"runtimeOptions":{"configProperties":{"System.GC.Server":true}},"publishOptions":{"include":["wwwroot","**/*.cshtml","appsettings.json","web.config"]},"scripts":{“prepublish”:[“bowerinstall”,“dotnetbundle”],“postpublish”:[“dotnetpublish-iis--publish-folder%publish:OutputPath%--framework%publish:FullTargetFramework%”]}}临时解决场景通过执行dotnetefmigrations脚本,我得到了可以直接在MySQL中执行的SQL代码之后,创建了迁移表并且一切正常。这是一个临时解决方案,很糟糕。我仍然想知道启用迁移的“正确”方法是什么。我在使用标准Oracle提供程序时遇到了同样的问题。根据这个问题,DotNetEntityFrameworkdatabaseupdatedoesnotcreatetablesinmysqldatabase,它还没有实现迁移。我按照建议切换到SapientGuardian提供程序,这似乎是目前最好的方法。编辑:正如评论中所建议的,Pomelo是2018年开始的最佳选择。自从我最初的回答以来,我选择了不同的供应商。将MarkG的评论变成了答案。创建__EFMigrationsHistory表后,应运行其余更新。CREATETABLE`__EFMigrationsHistory`(`MigrationId`nvarchar(150)NOTNULL,`ProductVersion`nvarchar(32)NOTNULL,PRIMARYKEY(`MigrationId`));或者,生成迁移脚本并在包管理器控制台中使用该命令手动应用于数据库:Script-Migration如果需要生成所有脚本,可以使用以下命令:Script-Migration-from0我有同样的问题,OP上下文可能略有不同,但为了完整起见,这里是我的答案。您遇到此问题的方法之一是:在这种情况下,您将收到OPMySql.Data.MySqlClient.MySqlException报告的错误:表'db.__EFMigrationsHistory'不存在在这种情况下,解决方案是删除整个数据库。之后,update-databse命令运行成功。我不确定它是否只与mysql有关,但要恢复:与官方OracleMySQL提供程序有同样的问题。刚刚添加了包:Install-PackageSapientGuardian.EntityFrameworkCore.MySql并且迁移成功了!以上就是C#学习教程:EFCore–Table'*.__EFMigrationsHistory'不存在分享的全部内容。如果对大家有用,需要进一步了解C#学习教程,希望大家多多关注。本文来自网络收集,不代表立场,如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: