powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / ef core include fromSql
25 сообщений из 32, страница 1 из 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
25 сообщений из 32, страница 1 из 2
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / ef core include fromSql
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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