powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / ef core include fromSql
32 сообщений из 32, показаны все 2 страниц
ef core include fromSql
    #39749292
Vladimirzzz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день. Подскажите пожалуйста.

Есть таблица users и соответствующая ей модель.
И есть таблица changes с полями objectType и objectId. objectType - показывает к какой таблице относится запись (В данном случае к users) а objectId id - id в той таблице на которую objectType указывает.
Как добавить в модель users поле IsChanged что бы оно читалось из groupBy по таблице changes ?
...
Рейтинг: 0 / 0
ef core include fromSql
    #39749328
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vladimirzzz,
Вы храните историю изменений?
Модель это обычно имена сущностей, а не действий.
Поэтому непонятно что вы хотите.
...
Рейтинг: 0 / 0
ef core include fromSql
    #39749337
Vladimirzzz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123, Да я хочу хранить историю изменений разных сущностей, но не хочу под каждую сущность создавать отдельную сущность изменений.
...
Рейтинг: 0 / 0
ef core include fromSql
    #39749339
Vladimirzzz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123, понятно что можно отдельным запросом вытягивать и уже в коде джоинить. Но на голом SQL я бы сделал это одним запросом - вот и здесь хочется.
...
Рейтинг: 0 / 0
ef core include fromSql
    #39749348
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VladimirzzzPetro123, Да я хочу хранить историю изменений разных сущностей, но не хочу под каждую сущность создавать отдельную сущность изменений.
Одну таблицу для всяких разных сущностей не получится.
И EF для этого не создан.
Потом, что делать если сущность Адрес состоит из 15 таблиц?
...
Рейтинг: 0 / 0
ef core include fromSql
    #39749352
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VladimirzzzPetro123, понятно что можно отдельным запросом вытягивать и уже в коде джоинить. Но на голом SQL я бы сделал это одним запросом - вот и здесь хочется.ставь в каждой сущности поле IsActual или isDeleted. Но я никогда бы так не делал.
...
Рейтинг: 0 / 0
ef core include fromSql
    #39749353
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vladimirzzz,
Просто логируйте кто что делал в таблицу логов. Задача та же, но смысл разный)
...
Рейтинг: 0 / 0
ef core include fromSql
    #39749356
Vladimirzzz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123, Ну 15 таблиц - это не вопрос - я же эту информацию обрабатываю в коде - могу по какой то своей схеме хранить путь к изменяемому полю.
...
Рейтинг: 0 / 0
ef core include fromSql
    #39749358
Vladimirzzz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123, Вся штука в том что мне нужно отобрать измененные записи и предложить их отмодерировать (восстановить удаленное, не принять новое, откатить отдельные измененные поля)
...
Рейтинг: 0 / 0
ef core include fromSql
    #39749371
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VladimirzzzPetro123, Вся штука в том что мне нужно отобрать измененные записи и предложить их отмодерировать (восстановить удаленное, не принять новое, откатить отдельные измененные поля )
Если Петров внес Иванова, а Сидоров записал ему жену и Петров удалил всех его детей.
Как восстановишь?
...
Рейтинг: 0 / 0
ef core include fromSql
    #39749374
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vladimirzzz,
Делай премодерацию или заявку на коммит в базу.
...
Рейтинг: 0 / 0
ef core include fromSql
    #39749375
Vladimirzzz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123, Слава богу в основном простые поля. Самый сложный случай - в качестве поля - массив объектов с простыми полями. А то да, можно далеко пойти ... :)
...
Рейтинг: 0 / 0
ef core include fromSql
    #39749379
Vladimirzzz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123Vladimirzzz,
Делай премодерацию или заявку на коммит в базу.
Ну если бы требования определял я ..... А так горожу какого то монстра с которым три калеки будут работать но "ТАК НАДО!!!" :)
...
Рейтинг: 0 / 0
ef core include fromSql
    #39749385
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vladimirzzz,
Я имхо написал. Делай linq или sql.
А обычную CRUD через EF и модель.
...
Рейтинг: 0 / 0
ef core include fromSql
    #39749386
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VladimirzzzА так горожу какого то монстра с которым три калеки будут работатьдвое правят и третий за них зачеркивает))
...
Рейтинг: 0 / 0
ef core include fromSql
    #39749395
Vladimirzzz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123, Еще есть вариант с наследованием и objectType в качестве дискриминатора. Но подозреваю что в базе ef сотворит одну таблицу, но в ней на каждый тип будет по полю вида xxx_id
...
Рейтинг: 0 / 0
ef core include fromSql
    #39749421
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VladimirzzzPetro123, Еще есть вариант с наследованием и objectType в качестве дискриминатора. Но подозреваю что в базе ef сотворит одну таблицу, но в ней на каждый тип будет по полю вида xxx_idда.
Я бы не мешал твою историю с основной моделью.
class User{
Id,
Name

}
class UserArhiv{
Id,
IdOwner
Name,
DateUpdate
}
...
Рейтинг: 0 / 0
ef core include fromSql
    #39749481
Vladimirzzz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123, Спасибо за советы
...
Рейтинг: 0 / 0
ef core include fromSql
    #39749962
Дмитрий Мух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vladimirzzz,

идея хранить лог операций в одной таблице/коллекции далеко не новая, вот только при этом не делают так:
"добавить в модель users поле IsChanged что бы оно читалось из groupBy по таблице changes"

Зачем?

VladimirzzzВся штука в том что мне нужно отобрать измененные записи и предложить их отмодерировать (восстановить удаленное, не принять новое, откатить отдельные измененные поля)
Дак отберите, в чём проблема?
...
Рейтинг: 0 / 0
ef core include fromSql
    #39750033
Vladimirzzz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день
Дмитрий МухVladimirzzz,

идея хранить лог операций в одной таблице/коллекции далеко не новая, вот только при этом не делают так:
"добавить в модель users поле IsChanged что бы оно читалось из groupBy по таблице changes"


А как делают ?
...
Рейтинг: 0 / 0
ef core include fromSql
    #39750123
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VladimirzzzДобрый день
Дмитрий МухVladimirzzz,

идея хранить лог операций в одной таблице/коллекции далеко не новая, вот только при этом не делают так:
"добавить в модель users поле IsChanged что бы оно читалось из groupBy по таблице changes"


А как делают ?
Обычно когда открывается экран некой сущности, то там показывается кем и когда она последний раз изменялась.
И эти данные не вычисляются по истории, они хранятся вместе с сущностью в полях ModifiedOn, ModifiedBy (UpdatedOn, UpdaterId).

А список конкретных изменений запрашивается по требованию по objectId, objectType.
Дёргать его для вычисления IsChanged во первых не имеет практического смысла, так как ясень пень люди работают с данными и меняют их.
А во вторых - накладно.
...
Рейтинг: 0 / 0
ef core include fromSql
    #39750125
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vladimirzzz,

вы бы обрисовали некий сценарий использования
...
Рейтинг: 0 / 0
ef core include fromSql
    #39750134
Vladimirzzz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
skyANA, Уточню. Нужен интерфейс в котором модератор может видеть список записей с пометкой новая/измененная (причем измененные и добавленные не им) зайти в запись и принять/отклонить изменения отдельных полей. Можно конечно навешивать на каждую таблицу ModifiedFromUserOn, ... в добавок к ModifiedOn но я подумал что информацию проще тянуть из таблицы changes. В моем случае
размеры таблиц не должны стать проблемой.
...
Рейтинг: 0 / 0
ef core include fromSql
    #39750141
Vladimirzzz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В принципе я решил задачу таким способом
class Changes {
ObjectId,
......
}
class UserChanges : Changes {
[ForegnKey("ObjectId")]
User User
}
class DocChanges : Changes {
[ForegnKey("ObjectId")]
Doc Doc
}
...
Рейтинг: 0 / 0
ef core include fromSql
    #39750551
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vladimirzzz,

я же написал для чего зачастую нужны ModifiedOn, ModifiedBy.

НЕ для получения списка изменений. Для последнего следует плясать от таблицы changes, к чему Вы и пришли.
...
Рейтинг: 0 / 0
ef core include fromSql
    #39750552
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VladimirzzzВ принципе я решил задачу таким способом
class Changes {
ObjectId,
......
}
class UserChanges : Changes {
[ForegnKey("ObjectId")]
User User
}
class DocChanges : Changes {
[ForegnKey("ObjectId")]
Doc Doc
}
А что это Вам дало, если не секрет?
...
Рейтинг: 0 / 0
ef core include fromSql
    #39750772
Vladimirzzz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
skyANA,
skyANAА что это Вам дало, если не секрет?
Добрый день. Это позволяет мне при выборке по users через include получать changes для userов. А при выборке по Doc changes для Docs и.т.д
...
Рейтинг: 0 / 0
ef core include fromSql
    #39750774
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VladimirzzzskyANA,
skyANAА что это Вам дало, если не секрет?
Добрый день. Это позволяет мне при выборке по users через include получать changes для userов. А при выборке по Doc changes для Docs и.т.д
На мой взгляд это не лучшее решение при запросе списка пользователей, или документов цеплять ещё и изменения.
Именно при запросе списка.
...
Рейтинг: 0 / 0
ef core include fromSql
    #39750815
Vladimirzzz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
skyANA, Ну мне кажется с точки зрения организации данных это более правильная схема. Да - для базы это более тяжелое решение. Но если будут проблемы с производительностью (думаю что в моем случае нет) то буду оптимизировать добавлением полей created/modified
...
Рейтинг: 0 / 0
ef core include fromSql
    #39750881
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vladimirzzz,

обычно документов гораздо больше, чем изменений по ним за день

приходит утром человек на работу и хочет видеть, что там и где изменилось...
это всё у вас в changes по идее лежит

вопрос: а зачем тут users, docs? имхо странный сценарий
...
Рейтинг: 0 / 0
ef core include fromSql
    #39751195
Vladimirzzz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
skyANA, Добрый день. Ну тут вопрос уже не ко мне - может быть и вариант работать отдельно с юзерами или документами (документы я для примера прицепил, реально там всякие разные довольно специфичные сущности) а отдельно с потоком изменений всего. Но захотели именно в таком ключе - работаем с юзерами, видим у них пометки. Вообщем что то вот такое выходит https://clip2net.com/s/3YLy4Mp
...
Рейтинг: 0 / 0
ef core include fromSql
    #39751220
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vladimirzzz,
Да. Это уже не к программистам а к бизнес аналитикам).
Если что, ленивую подгрузку/поле/ajax сделаете.
...
Рейтинг: 0 / 0
32 сообщений из 32, показаны все 2 страниц
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / ef core include fromSql
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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