无法从Migration MySQL Ef-Core生成数据库表

时间:2018-12-26 07:01:04

标签: mysql ef-migrations ef-core-2.1

我正在尝试使用EF Core Migrations生成数据库和表。我有一个类库项目,其中包含所有必需的实体和迁移数据。我在另一个ASP.NET Core 2.1 Web应用程序中引用类库项目。 运行时

  

初始添加迁移

在Nuget软件包管理器控制台中选择类库项目迁移文件中的

命令是在类库项目中生成的。

当我运行命令

  

更新数据库

选择类库网络项目,我得到的消息是:

  

未应用任何迁移。数据库已经是最新的。

我的 DbContextClass

 public class UserDbContext:DbContext
    {
        public UserDbContext(DbContextOptions<UserDbContext> options) : base(options){}
        public DbSet<LoginSession> login_sessions { get; set; }
        public DbSet<Authentication> authentications { get; set; }
        public DbSet<RolePermissionMap> role_permission_maps { get; set; }
        public DbSet<Entity.User> users { get; set; }
        public DbSet<Role> roles { get; set; }
        public DbSet<UserRole> user_roles { get; set; }
    }

我尝试跑步

  

dotnet ef数据库更新

从控制台选择类库项目的

命令,我收到一条错误消息:

  

无法解析指定的框架版本'2.1'。   指定的框架'Microsoft.NETCore.App',版本'2.1'不是   找到。

当我将所有重要文件从类库复制到另一个Web应用程序项目(即迁移文件和Web项目在同一文件中)时,一切正常。

我想知道为什么当类库和Web应用程序位于单独的文件中时出现此错误并无法找到解决方案。谁能帮我?我在Web应用程序中引用了许多类库。因此,我不能仅将所有必需的文件移植到另一个Web应用程序中以生成数据库表。

1 个答案:

答案 0 :(得分:1)

我以前也遇到过类似的问题。

两个建议:

  1. 请考虑从项目中取消整个“迁移”(所有目录,文件等),然后重新运行dotnet ef migrations add...,然后再运行dotnet ef database update...

  2. 考虑将Pomelo数据提供程序用于MySQL:

https://www.nuget.org/packages/Pomelo.EntityFrameworkCore.MySql