MicrosoftEntityFrameworkCore无法从程序集中查找迁移

问题描述 投票:0回答:2

我正在使用实体框架核心Ver。 2.2.4,我正在维护一个单独的程序集来维护ef生成的迁移。在应用程序启动期间,当我尝试执行context.Database.Migrate()时,我在输出日志中收到以下消息

No migrations were found in assembly 'MyProject.Core'.

我已经包含了optionsBuilder.UseSqlite(GetConnectionString(), builder => builder.MigrationsAssembly("MyProject.Core"));来加载适当的程序集来查找迁移,但没有运气。任何想法发生了什么?

database sqlite xamarin.android entity-framework-core
2个回答
0
投票

从项目中引用迁移程序集。

如果不能,因为它会导致循环依赖,请将迁移程序集的输出路径设置为主项目的目录:(或以其他方式复制它)

<PropertyGroup>
 <BaseOutputPath>..\MyStartupProject\bin\</BaseOutputPath>
</PropertyGroup>

0
投票

在查看EF Core源代码后,我发现了问题所在。问题出在我的应用程序db上下文类,即AppDbContext:DbContext。我在我的核心项目中将此类标记为抽象,后来我从android项目中的类派生来定义连接字符串。看起来EF Core将忽略使用包含抽象数据库上下文类型的[DbContext(typeof(AppDbContext))]属性标记的所有迁移。一旦我使db上下文类具体化,我的迁移就开始起作用了。

© www.soinside.com 2019 - 2024. All rights reserved.