|
ef core update вместо delete
|
|||
---|---|---|---|
#18+
Добрый день. EF Core. Возникло требование не удалять строки в базе а помечать как удаленные. Подскажите пожалуйста - есть ли способ сделать это как то автоматом, не засоряя модели признаком isDeleted и чтоб работало каскадное удаление (то есть каскадное выставление признака isDeleted ) Спасибо ... |
|||
:
Нравится:
Не нравится:
|
|||
04.05.2018, 10:24 |
|
ef core update вместо delete
|
|||
---|---|---|---|
#18+
Vladimirzzzне засоряя модели признаком isDeletedVladimirzzzкаскадное выставление признака isDeletedя один ничего не понял? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.05.2018, 10:39 |
|
ef core update вместо delete
|
|||
---|---|---|---|
#18+
Добрый день. Я только залез в ef поэтому может не очень точно выражаюсь. Я так понимаю что могу получить нужный функционал добавив в модель property 'isDeleted' ну или что нибудь в этом роде и потом пользуясь только update ручками проставлять его у дочерних сущностей, при выборках не учитывать записи с isDeleted = true и.т.д. Но хочется сразу для всех сущностей подменить поведение что бы вместо удаления из базы была пометка записи как удаленной. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.05.2018, 11:15 |
|
ef core update вместо delete
|
|||
---|---|---|---|
#18+
Vladimirzzzдобавив в модель property 'isDeleted'не надо. Он сам это делает. Если вы о псевдоудалении то забудьте. Переносите сущности в архив, но не делайте флаги "Как бы удалено" ... |
|||
:
Нравится:
Не нравится:
|
|||
04.05.2018, 11:57 |
|
ef core update вместо delete
|
|||
---|---|---|---|
#18+
Petro123, Хранить удаленные записи - это требование заказчика ( как и подробное логирование изменений сущностей и пессимистичная блокировка и модерация изменений :) ) А какие минусы у псевдоудаленных записей кроме разбухания таблицы ? С архивом - дублировать все таблицы ? Или всю базу? Сразу возникает вопрос контроля куда ведут связи из архивной таблицы - в основную из актуальных таблиц или уже в архивную ? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.05.2018, 12:26 |
|
ef core update вместо delete
|
|||
---|---|---|---|
#18+
делайте статусы в таблицах и меняйте их при "удалении" записей, это всё решается в вашем случаем бизнес логикой ... |
|||
:
Нравится:
Не нравится:
|
|||
04.05.2018, 12:28 |
|
ef core update вместо delete
|
|||
---|---|---|---|
#18+
VladimirzzzДобрый день. EF Core. Возникло требование не удалять строки в базе а помечать как удаленные. Подскажите пожалуйста - есть ли способ сделать это как то автоматом, не засоряя модели признаком isDeleted и чтоб работало каскадное удаление (то есть каскадное выставление признака isDeleted ) Спасибо Vladimirzzz, Руками: How to make soft delete in cascade with Entity Framework Core including navigation properties? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.05.2018, 12:39 |
|
ef core update вместо delete
|
|||
---|---|---|---|
#18+
Vladimirzzz, ну и про глобальные фильтры почитайте... вроде здесь все вместе ... |
|||
:
Нравится:
Не нравится:
|
|||
04.05.2018, 12:41 |
|
ef core update вместо delete
|
|||
---|---|---|---|
#18+
Konst_One, Ну да с isDeleted это и есть этот вариант. Но мне кажется что этим не нужно бы засорять бизнес логику так как удалять или помечать- это зависит от реализации хранилища, то есть относится к DAL и жить должно там. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.05.2018, 12:46 |
|
ef core update вместо delete
|
|||
---|---|---|---|
#18+
VladimirzzzKonst_One, Ну да с isDeleted это и есть этот вариант. Но мне кажется что этим не нужно бы засорять бизнес логику так как удалять или помечать- это зависит от реализации хранилища, то есть относится к DAL и жить должно там. Ну так и читайте про патерне матерны... если хотите "чистоты"... репозитории поки дто с автомапперами... ... |
|||
:
Нравится:
Не нравится:
|
|||
04.05.2018, 12:50 |
|
ef core update вместо delete
|
|||
---|---|---|---|
#18+
VladimirzzzХранить удаленные записи - это требование заказчика (он же не сказал каким методом. Он слово запись не употреблял? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.05.2018, 12:52 |
|
ef core update вместо delete
|
|||
---|---|---|---|
#18+
VladimirzzzА какие минусы у псевдоудаленных записей кроме разбухания таблицы ?а как один ко многим будет работать? Когда в цикле по записям мастера пойдут запросы ленивые к чилдренам? А там из 100 детишек только 2 реальных. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.05.2018, 12:55 |
|
ef core update вместо delete
|
|||
---|---|---|---|
#18+
VladimirzzzС архивом - дублировать все таблицы ? Или всю базу? Сразу возникает вопрос контроля куда ведут связи из архивной таблицы - в основную из актуальных таблиц или уже в архивную ? Как вариант базы OLAP / OLTP Т.е. Закрыть опер день означает переместить накладные в другю базу или таблу. Денормализовав. Там целая ветка форума есть. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.05.2018, 12:59 |
|
ef core update вместо delete
|
|||
---|---|---|---|
#18+
buserНу так и читайте про патерне матерны... если хотите "чистоты"... репозитории поки дто с автомапперами... Нууу ... почти во всем хороша умеренность :) Спасибо - ссылки как раз то что нужно. Меня в гугле не забанили - я просто не сообразил что это "soft delete" :) ... |
|||
:
Нравится:
Не нравится:
|
|||
04.05.2018, 13:04 |
|
ef core update вместо delete
|
|||
---|---|---|---|
#18+
Vladimirzzz, и таки да... возможно есть поддержка на уровне движка вашей субд... как пример - Temporal Tables в ms sql ... |
|||
:
Нравится:
Не нравится:
|
|||
04.05.2018, 13:04 |
|
ef core update вместо delete
|
|||
---|---|---|---|
#18+
Konst_Oneделайте статусы в таблицах и меняйте их при "удалении" записей, это всё решается в вашем случаем бизнес логикой Тут ef. Он сам не удаляет. Код: c# 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
04.05.2018, 13:07 |
|
ef core update вместо delete
|
|||
---|---|---|---|
#18+
Спасибо всем за советы. Вот может еще кому пригодится http://dotnetfalcon.com/entity-framework-logical-delete-part-one-intro-and-questions/ ... |
|||
:
Нравится:
Не нравится:
|
|||
04.05.2018, 13:12 |
|
ef core update вместо delete
|
|||
---|---|---|---|
#18+
Petro123Konst_Oneделайте статусы в таблицах и меняйте их при "удалении" записей, это всё решается в вашем случаем бизнес логикой Тут ef. Он сам не удаляет. Код: c# 1.
ну и что, можно и апдейт сделать колонки статуса и выборку без статуса удалён и тд и тп ... |
|||
:
Нравится:
Не нравится:
|
|||
04.05.2018, 13:12 |
|
ef core update вместо delete
|
|||
---|---|---|---|
#18+
Konst_One, Все можно. Но код будет адовый. Миграция адовая и FK работать не будет т.к. мастер вроде бы удален, а чилдрены нет. В общем надо смотреть что выираем. Если думаем что я могу вернуть сущность удаленную месяц назад, то нет. Чревато. У сущности куча связей. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.05.2018, 13:21 |
|
ef core update вместо delete
|
|||
---|---|---|---|
#18+
Petro123Konst_One, Все можно. Но код будет адовый. Миграция адовая и FK работать не будет т.к. мастер вроде бы удален, а чилдрены нет. В общем надо смотреть что выираем. Если думаем что я могу вернуть сущность удаленную месяц назад, то нет. Чревато. У сущности куча связей. видно мы о разном: Код: c# 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
04.05.2018, 13:27 |
|
ef core update вместо delete
|
|||
---|---|---|---|
#18+
Konst_One, ToList убери и пройдись циклом. foreach ........ Чилдрены будут автоматом грузится все 100 штук или только актуальные? 2. Каскад будет работать? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.05.2018, 14:09 |
|
ef core update вместо delete
|
|||
---|---|---|---|
#18+
Konst_One Код: c# 1.
и это убери. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.05.2018, 14:10 |
|
ef core update вместо delete
|
|||
---|---|---|---|
#18+
Konst_One, У сущности Юзер есть машины, дети и долги. У долгов тоже есть каскад и FK. Как удалить юзверя со всем барахлом по каскаду? Как обеспечить проверку FK при псевдоудалении? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.05.2018, 14:14 |
|
ef core update вместо delete
|
|||
---|---|---|---|
#18+
Petro123Konst_One Код: c# 1.
и это убери. проехали, мы о разном ... ... |
|||
:
Нравится:
Не нравится:
|
|||
04.05.2018, 14:14 |
|
ef core update вместо delete
|
|||
---|---|---|---|
#18+
Petro123Konst_One, У сущности Юзер есть машины, дети и долги. У долгов тоже есть каскад и FK. Как удалить юзверя со всем барахлом по каскаду? Как обеспечить проверку FK при псевдоудалении? не нужно ТСу физически удалять, ему нужно , чтобы физически эти данные в таблице оставались, я привёл пример , как это реализуется в бизнес-логике. ps tolist include etc тут не при чём, я про суть , что можно это решить через колонку статуса ... |
|||
:
Нравится:
Не нравится:
|
|||
04.05.2018, 14:17 |
|
|
start [/forum/topic.php?fid=17&fpage=5&tid=1349198]: |
0ms |
get settings: |
8ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
35ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
69ms |
get tp. blocked users: |
2ms |
others: | 242ms |
total: | 396ms |
0 / 0 |