Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / ef core include fromSql / 25 сообщений из 32, страница 1 из 2
18.12.2018, 10:40
    #39749292
Vladimirzzz
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ef core include fromSql
Добрый день. Подскажите пожалуйста.

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

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

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

Зачем?

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

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


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

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


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

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

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

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

НЕ для получения списка изменений. Для последнего следует плясать от таблицы changes, к чему Вы и пришли.
...
Рейтинг: 0 / 0
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / ef core include fromSql / 25 сообщений из 32, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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