Как прокинуть абстрактный класс через SignalR C#?
У меня есть абстрактный класс MessageBase, от него наследуются ImageMessage, TextMessage, DeclarationMessage. Так же у меня есть база данных SQLite3 и подключенный фреймворк Entity Framework. В базе я храню все сообщения, они реализованы наследником и выглядят так
using Chat.Models;
using Microsoft.EntityFrameworkCore;
namespace Server
{
public class DatabaseContext : DbContext
{
public DbSet<TextMessage> TextMessages { get; set; } = null!;
public DbSet<ImageMessage> ImageMessages { get; set; } = null!;
public DbSet<DeclarationMessage> DeclarationMessages { get; set; } = null!;
public DbSet<MessageBase> MessageBases { get; set; } = null!;
public DatabaseContext(DbContextOptions<DatabaseContext> options) : base(options)
{
Database.EnsureCreated();
TextMessages.Load();
ImageMessages.Load();
DeclarationMessages.Load();
MessageBases.Load();// создаем базу данных при первом обращении
}
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder.UseSqlite("Data Source=ChatDB.db");
}
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<MessageBase>().HasKey(x => x.Number);
base.OnModelCreating(modelBuilder);
}
}
}
Но! Когда я из Hub SignalR посылаю список абстрактных классов MessageBase, хендлер connection.on не срабатывает. В интеренте нагуглил что SignalR и EF не дружат с наследованием, абстракцией и прочими заумными словами :D. Так вот. Как мне быть?