我之所以写this question是因为我想了解如何创建DbContext,在该DbContext中,您仅在对用户进行身份验证之后才知道连接字符串(目录数据库中用户详细信息的连接字符串部分)。我的问题是我无法在启动服务中设置此设置,因为我必须等待用户登录。
我got an answer建议这样做:
var connection = @"Server=(localdb)\mssqllocaldb;Database=JobsLedgerDB;Trusted_Connection=True;ConnectRetryCount=0";
var optionsBuilder = new DbContextOptionsBuilder<BloggingContext>();
optionsBuilder.UseSqlServer(connection);
using (var context = new BloggingContext(optionsBuilder.Options))
{
// do stuff
}
Camilo Terevinto评论了这句话,这是一个非常糟糕的建议:
使用AddDbContext,EF Core使用后面的工厂来确定何时添加新对象 实例已创建
我已经注意到,该选项(答案)实际上位于“构造函数参数”下的EF Docs中。
如果它在文档中并且似乎是用户登录后运行的唯一方法,可以建立连接吗?有没有更好的办法?有我需要注意的事情吗?。想知道是否有人可以详细说明卡米洛的评论。