Witam,
mam pewien problem i zarazem pytanie.
Chodzi o to, że wykonuję pewną operację w mojej aplikacji używającej EF np. logowanie do systemu. Operacje sprawdzania poprawności danych logowania, sprawdzenie czy użytkownik nie jest zablokowany itp wykonywane są w serwisie UserService. W tym serwisie jest jedno pole typu DbContext, które jest przez konstruktor wstrzykiwane poprzez Unity Container, a tam zarejestrowane w ten sposób:
Container.RegisterType<SmContext>(new ContainerControlledLifetimeManager());
Problem pojawia się, kiedy mam odpalone okno logowania i próbuję się zalogować do zablokowanego konta to wyświetla mi odpowiedni komunikat. Jeśli natomiast obok na innym komputerze z drugiej instancji programu odblokuje to konto, to póki nie zrestartuje programu to dane się nie zmieniają. Obszedłem to w ten sposób, że napisałem klasę rozszerzeniową:
public static void ReloadEntity<TEntity>(
this DbContext context,
TEntity entity)
where TEntity : class
{
context.Entry(entity).Reload();
}
I odpalam ją przed logowaniem.
Wcześniej w każdej metodzie serwisu miałem using i korzystałem z nowego obiektu kontekstu. Jest jakiś sposób, aby było dobrze?