让我们得到一个根模块,例如:
@Module({
imports: [MikroOrmModule.forRoot({
metadataProvider: TsMorphMetadataProvider,
entities: ['dist/**/*.entity.js'],
entitiesTs: ['src/**/*.entity.ts'],
type: 'postgresql' as const,
baseDir: path.resolve(__dirname, '..'),
...
})],
})
export class AppModule {}
使用此设置,我可以注入EntityManager
,但@InjectRepository(User)
找不到提供程序。
@Injectable()
export class SomeService {
constructor(@InjectRepository(user) userRepository: EntityRepository<User>) {}
}
如果我也插入MikroOrmModule.forFeature([User])
根模块,它就不起作用。如果我将实体移动到一个子模块中并.forFeature
在那里使用(就像文档中的示例一样)它可以工作。
是否可以@InjectRepository()
在不需要子模块和手动引用的情况下工作?由于我已经找到了带有 blob 的实体,因此再次手动引用它们似乎违背了 blob 模式的目的。