Код: Выделить всё
private async Task registerCommand()
{
var service = this.user_service;
Task exists_username = service.ExistsByUsernameAsync(this.UsernameField.Text);
Task exists_email = service.ExistsByEmailAdressAsync(this.EmailField.Text);
var results = await Task.WhenAll(exists_username , exists_email);
// ....
}
InvalidOperationException: вторая операция была запущена в этом экземпляре контекста до завершения предыдущей операции. . Обычно это вызвано тем, что разные потоки одновременно используют один и тот же экземпляр DbContext. Для получения дополнительной информации о том, как избежать проблем с потоками с помощью DbContext
и
ReactiveUI .UnhandledErrorException: 'Объект, реализующий IHandleObservableErrors (часто ReactiveCommand или ObservableAsPropertyHelper), совершил ошибку, тем самым нарушив наблюдаемый конвейер. Чтобы предотвратить это, убедитесь, что в конвейере нет ошибок, или подпишитесь на свойство ThrownExceptions рассматриваемого объекта для обработки ошибочного случая.
Одновременное использование тот же экземпляр DbContext? Я регистрирую его как службу с ограниченной областью действия.
Код: Выделить всё
public static void AddCommonServices(this IServiceCollection collection)
{
collection.AddScoped();
collection.AddScoped();
collection.AddScoped();
}
Код: Выделить всё
public class UserRepository : IUserRepository
{
private DatabaseContext context = null!;
public UserRepository(DatabaseContext dbcontext) => this.context = dbcontext;
// ....
}
Код: Выделить всё
public class UserService
{
private IUserRepository repository;
public UserService(IUserRepository userRepository) => this.repository = userRepository;
// ....
}
Код: Выделить всё
private void goToRegister() => this.authVM.AuthContent = new RegisterVM(authVM, services.GetRequiredService());
Я должен добавить, что при выполнении двух задач одно за другим они работают нормально, поэтому мой вопрос в том же самом DbContext вызывается из разных потоков?
Подробнее здесь: https://stackoverflow.com/questions/785 ... -injection
Мобильная версия