EF核心:使用sqlite进行两种不同上下文的测试
我已经第一次在asp.net Core中使用EF Core,我必须承认,我没有发现这种体验有那么好(特别是如果你来自NH)。现在,我有以下场景:EF核心:使用sqlite进行两种不同上下文的测试,sqlite,unit-testing,entity-framework-core,Sqlite,Unit Testing,Entity Framework Core,我已经第一次在asp.net Core中使用EF Core,我必须承认,我没有发现这种体验有那么好(特别是如果你来自NH)。现在,我有以下场景: 2个不同的DBContext,每个上下文使用不同的模式 设置API是为了让某些API操作被事务包装(实际上,所有内容都已设置为两个上下文共享一个sqlconnection) 我想测试这类方法,但我不确定最好的方法是什么……在阅读文档之后,看起来最好的选择是使用SQLite,但有一个小问题:设置db 文档说我可以使用context.Database.
- 2个不同的DBContext,每个上下文使用不同的模式
- 设置API是为了让某些API操作被事务包装(实际上,所有内容都已设置为两个上下文共享一个sqlconnection)
context.Database.confurereducated
方法。不幸的是,只有在内存中的数据库还没有创建的情况下,这才有效。换句话说,在从第一个上下文实例调用if之后,当通过第二个上下文实例调用它时,它不会做任何事情(因为两个上下文共享同一个db,并且它已经在第一次调用之后创建)。实际上,这意味着我将得到一个部分db,它将表映射到第一个上下文的实体
有没有办法强制创建第二个上下文表?我可以用EF Core写这样的东西吗
contextA.Database.EnsureCreated();
contextB.Database.JustCreateTheTablesPlease();
或者,在运行测试之前,是否需要从SQL脚本重新创建数据库
谢谢