Загрузите изображение с Net8 и Blazor в профиле пользователя с Microsoft IdentityC#

Место общения программистов C#
Ответить
Anonymous
 Загрузите изображение с Net8 и Blazor в профиле пользователя с Microsoft Identity

Сообщение Anonymous »

Я создаю новый веб -сайт с Blazor и Framework Net8, используя Powerplate из предварительного просмотра Visual Studio 2022. Исходный код этого теста на GitHub.

Код: Выделить всё

public byte[]? ProfilePicture { get; set; }
Теперь, в файле index.razor под Компоненты> Страницы> Учетная запись> Управление , мне нравится позволять пользователям загружать изображение для своего профиля. Кроме того, у меня есть еще одна проблема в этой форме, которую я объясняю в этом посте.

Код: Выделить всё

< /code>
, а затем код < /p>
private async Task LoadFiles(InputFileChangeEventArgs e)
{
MemoryStream ms = new MemoryStream();
await e.File.OpenReadStream().CopyToAsync(ms);
var bytes = ms.ToArray();

_user.ProfilePicture = bytes;
await UserManager.UpdateAsync(_user);

Input.ProfilePicture = bytes;
}
Когда я изменяю изображение на загрузку, функция LoadFiles вообще не запускается. Я попытался отобрать страницу в качестве rendermodeinteractiveauto , но определенно это вызывает ошибку.
Обновление
Я создал новую страницу Razor для загрузки изображения (я удалил код, он не является необходимым для полученной ошибки)

Код: Выделить всё

@using BlazorIdentity.Data
@using Microsoft.AspNetCore.Identity
@rendermode RenderMode.InteractiveServer
@inject AuthenticationStateProvider AuthenticationStateProvider
@inject UserManager UserManager



@code {
[Parameter] public ApplicationUser? User { get; set; } = default!;

private async Task LoadFiles(InputFileChangeEventArgs e)
{
MemoryStream ms = new MemoryStream();
await e.File.OpenReadStream().CopyToAsync(ms);
var bytes = ms.ToArray();

User.ProfilePicture = bytes;
await UserManager.UpdateAsync(User);
}
}
Теперь проблема возникает, когда приложение выполняет Updatesync . Я получил эту ошибку < /p>

system.invalidoperationException: экземпляр типа объекта 'ApplicationUser' не может быть отслеживается, потому что другой экземпляр с тем же значением ключа для {'id'} уже отслеживается. При прикреплении существующих сущностей убедитесь, что прикреплен только один экземпляр объекта с заданным значением ключа. Рассмотрите возможность использования «dbContextOptionsBuilder.EnablesSIvitiveAtalogging», чтобы увидеть противоречивые значения ключей.

Я не изменяю идентификатор , я изменяю значение в приложении . Просмотр Visual Studio 2022. Я добавил несколько новых полей. Но посмотрите на это. Экземпляр контекста перед выполнением предыдущей операции. Обычно это вызвано различными потоками одновременно с использованием одного и того же экземпляра DBContext. Для получения дополнительной информации о том, как избежать проблем с потоком с DBContext, см.>

Подробнее здесь: https://stackoverflow.com/questions/773 ... t-identity
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»