作者:手机用户2502937527 | 来源:互联网 | 2023-09-24 20:28
在单元测试中,我想在真实的数据库环境中测试数据库CRUD函数。
数据库已创建,但是当我调用savechanges()时出现异常:
microsoft.Data.SqlClient.SqlException:'无法打开登录请求的数据库“ ...”。登录失败。用户'....'登录失败。
为什么?上下文是相同的。
services.AddDbContext(optiOns=>
options.UseSqlServer(string.Format(Configuration["ConnectionString"],Configuration["DbServer"],Configuration["DbName"],Configuration["Dbusername"],Configuration["DbPassword"])));
public override void SetupDatabase(IApplicationBuilder app)
{
using (var serviceScope = app.ApplicationServices.GetRequiredService().CreateScope())
{
serviceScope.ServiceProvider.GetService().Database.Migrate();
}
}
我遇到了同样的问题,并通过将Guid.NewGuid().ToString()
移出了AddDbContext
范围来解决了这个问题。
似乎AddDbContext
被多次调用,并且在AddDbContext
中使用它会导致每次更改连接字符串。