要解决“ASP.NET Core 3.0 预览版 9 与 EF Core 的集成测试不起作用”的问题,可以尝试以下解决方法:
确保使用的是适用于 ASP.NET Core 3.0 预览版 9 的 EF Core 版本。可以通过在项目文件中的 PackageReference
元素中指定特定版本来确保使用正确的版本。例如,对于 Microsoft.EntityFrameworkCore
,可以指定
。
确保在测试项目中正确配置 EF Core。在测试项目的 Startup.cs
文件中,添加与主应用程序项目相同的配置。这包括在 ConfigureServices
方法中添加 EF Core 的服务,并在 Configure
方法中添加数据库上下文的中间件。例如:
public void ConfigureServices(IServiceCollection services)
{
services.AddDbContext(options =>
options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
//其他配置代码
app.UseAuthentication();
app.UseMvc();
}
EnsureCreated()
方法来创建数据库,或使用 Migrate()
方法来应用迁移。例如:[Fact]
public void TestMethod1()
{
var options = new DbContextOptionsBuilder()
.UseSqlServer("Server=(localdb)\\mssqllocaldb;Database=TestDb;Trusted_Connection=True;")
.Options;
using (var context = new ApplicationDbContext(options))
{
context.Database.EnsureCreated();
//执行测试代码
}
}
请注意,这只是一个示例解决方法,具体的解决方法可能因您的项目配置和需求而有所不同。建议查阅官方文档和相应的社区资源以获取更多帮助。