Как прокинуть абстрактный класс через 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. Так вот. Как мне быть?


Ответы (0 шт):