Ricevo ArgumentNullException: il valore non può essere nullo. Nome del parametro: opzioni Penso che sia a causa del mio costruttore predefinito che ottengo null ma se commento il costruttore, la nuova istanza di una classe ha bisogno di parametri che non so cosa dare. HELP PLEASE
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;
}
}
}
Nel mio controller
[Route("users")]
[HttpGet]
public async Task<List<User>> GetAllUsers()
{
return await OvertimeRequestBusiness.Instance.GetAllUsersAsync();
}
Ecco come è possibile creare DbContextOptions
:
var optionsBuilder = new DbContextOptionsBuilder<DatabaseContext>();
optionsBuilder.UseSqlServer("connection_string_here");
quindi DbContextOptions<DatabaseContext>
sarà disponibile come optionsBuilder.Options
. Puoi passarlo a OvertimeRequestBusiness.ctor
:
new OvertimeRequestBusiness(optionsBuilder.Options);