@VanilaSpirit

Как обрабатывать записи бд в реальном времени ASP.NET Core?

Есть добавление/редактирование/удаление записей в бд через страницы, было бы здорово сделать так, что изменяя запись на одной из страниц - они автоматически обновляются/добавляются на других.
Как можно такое реализовать? Можно где нибудь увидеть примеры?
  • Вопрос задан
  • 172 просмотра
Пригласить эксперта
Ответы на вопрос 3
Nipheris
@Nipheris Куратор тега C#
Почитайте про вебсокеты. Вам нужно будет держать коннекты со страниц в браузере на ваш сервер, и посылать обновления всем клиентам, которые "подписаны" на определённые записи при изменении этих самых записей.

Задача не такая тривиальная как кажется - нужно понимать, как полученное решение будет масштабироваться, и как будет ограничиваться объём рассылаемых данных. И вообще, "было бы здорово" - это недостаточный аргумент, такую задачу нужно ставить осознанно, понимая грядущие затраты и издержки.

Ну и посмотрите ещё на SignalR, как на более комплексное решение (если уверены, что для вас это не overkill - в целях обучения может лучше голые вебсокеты).
Ответ написан
@itgood
обновление бд
namespace Test_project
{
    using System;
    using System.Collections.Generic;
    using System.ComponentModel.DataAnnotations;
    using System.ComponentModel.DataAnnotations.Schema;
    using System.Data.Entity.Spatial;

    public partial class order_accounting_teh
    {
        [Key]
        [Column("Номер_заказа ", Order = 0)]
        [DatabaseGenerated(DatabaseGeneratedOption.None)]
        public int Номер_заказа_ { get; set; }

        [Key]
        [Column("Ед.изм.", Order = 1)]
        [StringLength(100)]
        public string Ед_изм_ { get; set; }

        [Key]
        [Column("Дата  выдачи сырья", Order = 2, TypeName = "date")]
        public DateTime Дата__выдачи_сырья { get; set; }

        [Column("Дата изменения", TypeName = "date")]
        public DateTime? Дата_изменения { get; set; }

        [Key]
        [Column(Order = 3)]
        [DatabaseGenerated(DatabaseGeneratedOption.None)]
        public int П_П { get; set; }

        [Key]
        [Column("Обозначение/Наименование", Order = 4)]
        [StringLength(255)]
        public string Обозначение_Наименование { get; set; }

        [Key]
        [Column("Наименование сырья", Order = 5)]
        [StringLength(255)]
        public string Наименование_сырья { get; set; }

        [Key]
        [Column("Кол-во,шт", Order = 6)]
        [DatabaseGenerated(DatabaseGeneratedOption.None)]
        public int Кол_во_шт { get; set; }

        [Column("Номер заказчика")]
        public int? Номер_заказчика { get; set; }
    }
}

здесь заполняется через datagrid только внесены изменение сразу в бд идет авто сохранение
Ответ написан
firedragon
@firedragon
Не джун-мидл-сеньор, а трус-балбес-бывалый.
Как выше уже сказали, сокеты, сигнал, можно LongPooling.
Я как то делал для уведомления человека о новом сообщении и добавлении информации в чат.
https://github.com/vkorotenko/ChatApplication
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы