Blazor WASM не может использовать EntityFrameworkC#

Место общения программистов C#
Ответить
Anonymous
 Blazor WASM не может использовать EntityFramework

Сообщение Anonymous »

Я пишу приложение Blazor WASM в .NET 8. Сегодня я пытался добавить в свое приложение получение данных из базы данных, но мне не удалось заставить EntityFramework работать. Я использую те же библиотеки, что и всегда. У меня все написано, как всегда, но я просто не могу найти проблему. Когда я пытаюсь запустить приложение и получить данные из контекста в методе OnInitializedAsync, я получаю следующую ошибку в консоли:
Microsoft.AspNetCore.Components.WebAssembly.Rendering.WebAssemblyRenderer[100]
Unhandled exception rendering component: Type MySql.Data.EntityFrameworkCore.Infrastructure.Internal.MySQLOptionsExtension+ExtensionInfo has invalid vtable method slot 5 with method none
System.TypeLoadException: Type MySql.Data.EntityFrameworkCore.Infrastructure.Internal.MySQLOptionsExtension+ExtensionInfo has invalid vtable method slot 5 with method none
at Microsoft.EntityFrameworkCore.DbContextOptions.GetHashCode()
at System.Collections.Concurrent.ConcurrentDictionary`2[[Microsoft.EntityFrameworkCore.Infrastructure.IDbContextOptions, Microsoft.EntityFrameworkCore, Version=8.0.8.0, Culture=neutral, PublicKeyToken=adb9793829ddae60],[System.ValueTuple`2[[System.IServiceProvider, System.ComponentModel, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a],[System.Collections.Generic.IDictionary`2[[System.String, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[System.String, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].GetOrAdd[ValueTuple`2](IDbContextOptions key, Func`3 valueFactory, ValueTuple`2 factoryArgument)
at Microsoft.EntityFrameworkCore.Internal.ServiceProviderCache.GetOrAdd(IDbContextOptions options, Boolean providerRequired)
at Microsoft.EntityFrameworkCore.DbContext.get_ContextServices()
at Microsoft.EntityFrameworkCore.DbContext.get_Model()
at Microsoft.EntityFrameworkCore.Internal.InternalDbSet`1[[MyProject.Components.Models.Player, MyProject, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]].get_EntityType()
at Microsoft.EntityFrameworkCore.Internal.InternalDbSet`1[[MyProject.Components.Models.Player, MyProject, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]].CheckState()
at Microsoft.EntityFrameworkCore.Internal.InternalDbSet`1[[MyProject.Components.Models.Player, MyProject, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]].get_EntityQueryable()
at Microsoft.EntityFrameworkCore.Internal.InternalDbSet`1[[MyProject.Components.Models.Player, MyProject, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]].System.Collections.Generic.IEnumerable.GetEnumerator()
at System.Collections.Generic.List`1[[MyProject.Components.Models.Player, MyProject, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]..ctor(IEnumerable`1 collection)
at System.Linq.Enumerable.ToList[Player](IEnumerable`1 source)
at MyProject.Pages.Home.OnInitializedAsync() in C:\Users\FilipMráz\source\repos\MyProject\MyProject\Pages\Home.razor:line 112
at Microsoft.AspNetCore.Components.ComponentBase.RunInitAndSetParametersAsync()

Это блок кода:
protected override async Task OnInitializedAsync()
{
var a = context.CreateDbContext().Players.ToList();

foreach (var item in a)
{
Console.WriteLine(item.Id);
}
}

Это мой DbContext, а ниже — объект DbSet:
public class CustomDbContext : DbContext
{
public DbSet Players { get; set; }
public DbSet Tournaments { get; set; }
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder.UseMySQL("myConString");
}
}

[Table("Players")]
public class Player
{
public int Id { get; set; }
}


Подробнее здесь: https://stackoverflow.com/questions/790 ... yframework
Ответить

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

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

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

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

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