Я использую Blazor-сервер. Я создаю хранилище с entityframworkcore и sql.
UserRepository.cs:
public class UserRepository
{
AppContext _db;
public UserRepository(AppContext context)
{
_db = context;
}
public Task AddAsync(User user, CancellationToken cancellationToken = default)
{
cancellationToken.ThrowIfCancellationRequested();
try
{
await _db.User.AddAsync(user, cancellationToken);
int result = await _db.SaveChangesAsync(cancellationToken);
}
catch (Exception e)
{
}
}
}
startup.cs:
services.AddSingleton<IUserRepository, UserRepository>();
services.AddDbContext<AppContext>(ServiceLifetime.Transient);
users.razor:
@inject IUserRepository userRepository
и
await userRepository.addAsync(user1);
В случае сбоя операции, связанной с «user1», мы отредактируем и повторно отправим user1 (user2)
await userRepository.addAsync(user2);
Если операция связана с «user1» завершается ошибкой, затем для операции «user2» тот же «user1» (userRepository.AddAsyn c (user2)), объект «user1» снова загружается в базу данных и снова возвращается к той же ошибке. добавляется в db.User .Local.Count каждый раз
Кроме того, иногда, когда я выбираю данные из базы данных, редактирую и обновляю их, они будут показывать информацию перед обновлением, если я получу те же данные снова