[英]DbContextOptions parameters ASP.net core
I am getting ArgumentNullException: Value cannot be null. 我收到ArgumentNullException:值不能为null。 Parameter name: options I think it's because of my default constructor that I get null but If I comment out the constructor then the new instance of a class needs parameters which I don't know what to give in. HELP PLEASE
参数名称:options我认为这是因为我的默认构造函数使我为null,但是如果我注释掉该构造函数,则该类的新实例需要的参数我不知道要提供什么。
public class OvertimeRequestBusiness
{
public static OvertimeRequestBusiness Instance { get; } = new OvertimeRequestBusiness();
private readonly DbContextOptions<DatabaseContext> _contextOptions;
//default ctor
public OvertimeRequestBusiness() : base() { }
public OvertimeRequestBusiness(DbContextOptions<DatabaseContext> contextOptions)
{
_contextOptions = contextOptions;
}
public async Task<List<User>> GetAllUsersAsync()
{
using (var ctx = new DatabaseContext(_contextOptions))
{
var query = ctx.Users;
var res = await query.ToListAsync();
return res;
}
}
}
In my controller 在我的控制器中
[Route("users")]
[HttpGet]
public async Task<List<User>> GetAllUsers()
{
return await OvertimeRequestBusiness.Instance.GetAllUsersAsync();
}
Here is how you can create DbContextOptions
: 这是创建
DbContextOptions
:
var optionsBuilder = new DbContextOptionsBuilder<DatabaseContext>();
optionsBuilder.UseSqlServer("connection_string_here");
then DbContextOptions<DatabaseContext>
will be available as optionsBuilder.Options
. 然后
DbContextOptions<DatabaseContext>
将作为optionsBuilder.Options
可用。 You can pass it to OvertimeRequestBusiness.ctor
: 您可以将其传递给
OvertimeRequestBusiness.ctor
:
new OvertimeRequestBusiness(optionsBuilder.Options);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.