Molti siti che ho letto sul metodo statico hanno detto che per favore non dovrebbero usare il metodo statico per l'accesso al database e dovrebbero usare dependency injection per iniettare altri servizi e usare quel servizio per scrivere altra logica.Ma ci sono problemi capita quando iniettare AService in BService e iniettare AService in CService molti mesi passano la logica di business è far crescere ho bisogno di iniettare BService in CService, Fa problema causa che AService già iniettare in due punti non può farlo. Provo qualcosa di simile per risolvere quella soluzione.
public class InterlocutorFacade : GenericEFRepository<MsSql1DbContext, GenericUser>, IInterlocutorFacade
{
public InterlocutorFacade(MsSql1DbContext _msGenericDb) : base(_msGenericDb)
{
}
public async Task AddC()
{
await UserService.CreateLogs(_msGenericDb.Set<Logs>());
await _msGenericDb.SaveChangesAsync();
}
public async Task GetC()
{
var result = await UserService.GetFirstLogs(_msGenericDb.Set<Logs>());
}
}
e questo è il servizio che uso
public static class UserService
{
internal static async Task<Logs> GetFirstLogs(DbSet<Logs> dbSet)
{
var result = await dbSet.FirstOrDefaultAsync();
return result;
}
internal static async Task CreateLogs(DbSet<Logs> dbSet)
{
var result = await dbSet.AddAsync(new Logs() { });
}
}
Ma non sono sicuro di quale problema accadrà se lo faccio, qualcuno mi può mostrare un problema (prestazioni, conflitto di dati) che accadrà quando lo uso?