powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Code First + SQL Triggers
25 сообщений из 83, страница 1 из 4
Code First + SQL Triggers
    #39651570
Calabonga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго времени суток, уважаемые коллеги.

Вопрос такой. На сколько оправдано использование в SQL-триггеров при подходе CodeFirst (EntityFramework Core)
, при наличие вариантов, которые исключают какое-либо вмешательство в SQL сервер?
...
Рейтинг: 0 / 0
Code First + SQL Triggers
    #39651588
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Calabonga,
Это чисто идеология как писать.
Главное не смешивать.
Можно бд считать импотентом и хранилищем данных. Остальное делает средний слой.
Можно делать упор на бд как гарант целостности.
Если триггер без БЛ то вообще нет проблем.
...
Рейтинг: 0 / 0
Code First + SQL Triggers
    #39651592
Calabonga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123,

Так-то оно понятно, но интересует конкретный вопрос относительно миграции. Мешает или способствует?
...
Рейтинг: 0 / 0
Code First + SQL Triggers
    #39651594
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Calabonga,

миграции? Вы о чём?
...
Рейтинг: 0 / 0
Code First + SQL Triggers
    #39651596
Calabonga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
skyANA,

DbMigration... CodeFirst (EntityFramework)... изменение классоа (схемы данных)...
...
Рейтинг: 0 / 0
Code First + SQL Triggers
    #39651601
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CalabongaPetro123,

Так-то оно понятно, но интересует конкретный вопрос относительно миграции. Мешает или способствует?
Мешает).
И мое маленькое imho что MS что то поменяет.
Чтобы работали оба направления. Первична база и первичен АппСервер.
...
Рейтинг: 0 / 0
Code First + SQL Triggers
    #39651611
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CalabongaВопрос такой. На сколько оправдано использование в SQL-триггеров при подходе CodeFirst (EntityFramework Core)
, при наличие вариантов, которые исключают какое-либо вмешательство в SQL сервер?

Абсолютно не оправдано. Что за варианты имеются в виду, можете озвучить?
...
Рейтинг: 0 / 0
Code First + SQL Triggers
    #39651613
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CalabongaТак-то оно понятно, но интересует конкретный вопрос относительно миграции. Мешает или способствует?

Не то, чтобы мешают. Но не способствуют, это точно.
...
Рейтинг: 0 / 0
Code First + SQL Triggers
    #39651615
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CalabongaskyANA,

DbMigration... CodeFirst (EntityFramework)... изменение классоа (схемы данных)...
It depends...

К примеру мы выкатываем новую версию только на часть серверов и включаем только части пользователей.
И какое-то время надо писать данные в оба места: новое и старое.

Тут триггер помогает.
...
Рейтинг: 0 / 0
Code First + SQL Triggers
    #39651619
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAТут триггер помогает.

Слишком частный случай, а ТС пока не озвучил свои варианты использования.
...
Рейтинг: 0 / 0
Code First + SQL Triggers
    #39651622
Calabonga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Давайте я приведу конкретный пример, а за одно может чего посоветуете. Предположим, что у меня есть Computed Description свойство, мне надо хранить в нем, $"{Name} will pay you {Amount} of {CurrencyName}". При изменении в БД любого из свойств задействованных в выражении, хочется иметь "свежую" версию в свойстве Description.

Какие будут предложения?
...
Рейтинг: 0 / 0
Code First + SQL Triggers
    #39651627
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CalabongaДавайте я приведу конкретный пример, а за одно может чего посоветуете. Предположим, что у меня есть Computed Description свойство, мне надо хранить в нем, $"{Name} will pay you {Amount} of {CurrencyName}". При изменении в БД любого из свойств задействованных в выражении, хочется иметь "свежую" версию в свойстве Description.

Какие будут предложения?

Делать это в рамках приложения. Почему? Во-первых, сегодня вам нужен {Name}, который доступен из полей записи, а завтра нужно туда добавлять, допустим, имя текущего пользователя, который из триггера будет недоступен. Во-вторых, триггеры тяжело протестировать. В-третьих, вам может быть нужно одно поведение в одном окружении, и другое в другом (dev, staging, production...).
...
Рейтинг: 0 / 0
Code First + SQL Triggers
    #39651629
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Calabonga,

На EF ваше Computed Description может быть легко реализовано с помощью свойства, но лучше, если это будет выполняться на уровне репозитория.
...
Рейтинг: 0 / 0
Code First + SQL Triggers
    #39651632
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Calabonga,

Опять же. Это всё верно до тех пор, пока верно то, что с базой данных работает только приложение, и никто ручками в базу не лезет. Если это так, то мне тут посоветовать что-то трудно. Триггеры, конечно выглядят как решение, но по личному опыту, это не так.
...
Рейтинг: 0 / 0
Code First + SQL Triggers
    #39651638
Calabonga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hVosttCalabonga,

Опять же. Это всё верно до тех пор, пока верно то, что с базой данных работает только приложение, и никто ручками в базу не лезет. Если это так, то мне тут посоветовать что-то трудно. Триггеры, конечно выглядят как решение, но по личному опыту, это не так.


В том-то и дело, и можно обойтись без триггера. Пока работает одно приложение (или несколько приложений), но работают они по одним правилам, то есть везде используется одна и та же функция формирования Description, то это всё работает. Но как только "ручками", кто-то править в БД будет, то триггер отработает, а без него Description будет "сломан"
...
Рейтинг: 0 / 0
Code First + SQL Triggers
    #39651650
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CalabongaНо как только "ручками", кто-то править в БД будет,именно.
Бд предприятия это не твоя собственность.
Либо делаете большой АппСервер и все ходят через него, либо...
...
Рейтинг: 0 / 0
Code First + SQL Triggers
    #39651653
Calabonga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123,


Я понял, спасибо всем. В общем-то, вы подтвердили мои предположения.
...
Рейтинг: 0 / 0
Code First + SQL Triggers
    #39651656
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CalabongaВ том-то и дело, и можно обойтись без триггера. Пока работает одно приложение (или несколько приложений), но работают они по одним правилам, то есть везде используется одна и та же функция формирования Description, то это всё работает. Но как только "ручками", кто-то править в БД будет, то триггер отработает, а без него Description будет "сломан"

Поэтому с базой должно работать одно приложение, а другие работать с данными через него. Это называется трёх-звенка .
...
Рейтинг: 0 / 0
Code First + SQL Triggers
    #39652153
Calabonga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hVosttCalabongaВ том-то и дело, и можно обойтись без триггера. Пока работает одно приложение (или несколько приложений), но работают они по одним правилам, то есть везде используется одна и та же функция формирования Description, то это всё работает. Но как только "ручками", кто-то править в БД будет, то триггер отработает, а без него Description будет "сломан"

Поэтому с базой должно работать одно приложение, а другие работать с данными через него. Это называется трёх-звенка .
Другими словами, это BLL должен быть реализован отдельно от БД через какой-то уровень абстракции, например через паттерн Repository. Так?
...
Рейтинг: 0 / 0
Code First + SQL Triggers
    #39652174
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Calabongaпаттерн Repositoryдался вам этот паттерн.
Люди не любящие бд давно придумали слово интерцептор вмест слова триггер.
Ну, еще иногда эвент, сбытие, листенер.
Так что DbInterception должно тебя устроить.
По хорошему надо уметь писать и так и так.
...
Рейтинг: 0 / 0
Code First + SQL Triggers
    #39652175
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Calabongaэто BLL должен быть реализованв сервисном слое
...
Рейтинг: 0 / 0
Code First + SQL Triggers
    #39652176
Calabonga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123,


Странный комментарий, а особенно про "писать и так и так". К чему это? Писать с использованием древнего подхода (двух-звенка) и более продвинутого (трех-звенка)... А зачем писать по-старому? Какой от этого профит?

А про людей, которые не любят БД, вообще не понял. Таких "выдумывающих" дохреналионы, а паттерн один, и какая разниница как они его называют? Главное, на мой взгляд, чтобы люди понимали что говорят их аппоненты. А как ты паттерн Repository назовёшь - уже рояля не играет.
...
Рейтинг: 0 / 0
Code First + SQL Triggers
    #39652181
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Calabonga,
Ты собрался сайты клепать или кровавый энтерпрайз?
Вот, в кровавом, надо знать триггеры, хп, нормализацию, маппинг...
Хотя конечно мы в ветке трех звенки.
Так что про старье ты зря.
Стареют инструменты, а архитектура почти нет.
Про паттерн не понял. Назвать их по другому нельзя. Их имена это словарь и константы. Это зубрить.
...
Рейтинг: 0 / 0
Code First + SQL Triggers
    #39652182
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CalabongahVosttпропущено...


Поэтому с базой должно работать одно приложение, а другие работать с данными через него. Это называется трёх-звенка .
Другими словами, это BLL должен быть реализован отдельно от БД через какой-то уровень абстракции, например через паттерн Repository. Так?
Ага, это типовой подход.



А ещё есть CQRS с одной БД и без Event Sourcing
...
Рейтинг: 0 / 0
Code First + SQL Triggers
    #39652184
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Calabonga,
Или коротко по сабжу - триггеры это не старьё! Даже если появились интерцепторы.)
Ферштеен?
...
Рейтинг: 0 / 0
25 сообщений из 83, страница 1 из 4
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Code First + SQL Triggers
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]