我正在尝试使用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应用程序中以生成数据库表。
答案 0 :(得分:1)
我以前也遇到过类似的问题。
两个建议:
请考虑从项目中取消整个“迁移”(所有目录,文件等),然后重新运行dotnet ef migrations add...
,然后再运行dotnet ef database update...
考虑将Pomelo数据提供程序用于MySQL:
https://www.nuget.org/packages/Pomelo.EntityFrameworkCore.MySql