Sto provando a installare i test unitari per questo. Ma ogni esempio che ho visto funziona davvero in questo tipo di installazione. Funzionerà in questo modo.
//Setup DBContext
public MyContext(DbConnection connection) : base(connection, true){}
//Have some service that gets passed the context etc..
public class SomeService()
{
public SomeService(MyContext passedContext){
Context = passedContext;
}
public MyContext Context {get;set;}
public Book GetBook(int id){
return Context.Books.Find(id);
}
}
Ma il modo in cui ho il mio setup è qualcosa del genere, e non riesco a capire come farlo correttamente senza rompere tutto
public class SomeService()
{
public async Task<Book> GetBook(int id){
using(var context = new MyContext()
{
return await context.FindAsync(id);
}
}
}
Quindi, come posso testare questo, senza avere una proprietà Context e passare il contesto. Perché da quello che ho letto non posso farlo asincrono, perché DBContext non è thread-safe. Ma non posso nemmeno provarlo con Effort a meno che non passi tutto il contesto corretto da Effort ..
Non funzionerà perché uso un utilizzo su ogni metodo di servizio.
Asyns non è un problema qui. Si prega di fare riferimento a questa domanda per vedere come implementare il metodo di fabbrica: cosa succede quando si usa l'istruzione quando si passa all'input della dipendenza