Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
14.02.2018, 15:48
|
|||
---|---|---|---|
Чтение данных вставленных в контекст до вызова SaveChanges |
|||
#18+
Есть вопрос, по этому коду. В нем я создаю новую запись и добавляю ее в таблицу контекста entity framework. Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9.
В результате его выполнения переменная tmp оказывается null, т.е. запись не находится. Я так понимаю что мой запрос лезет в базу и ищет только то что есть в ней. А новой записи там еще нет. Вопрос в том, как написать запрос что бы он искал еще и по тем записям которые добавлены в контекст, но не сохранены? Или это неправильная хотелка и надо, например, организовывать транзакцию и вызывать SaveChanges и потом искать добавляемые записи. Ну и уже в самом конце целиком коммитить или откатывать транзакцию ... |
|||
:
Нравится:
Не нравится:
|
|||
|
14.02.2018, 15:59
|
|||
---|---|---|---|
|
|||
Чтение данных вставленных в контекст до вызова SaveChanges |
|||
#18+
В принципе, у контекста есть коллекция .ChangeTracker.Entries() Не знаю, есть ли способы проще ... |
|||
:
Нравится:
Не нравится:
|
|||
|
14.02.2018, 16:52
|
|||
---|---|---|---|
Чтение данных вставленных в контекст до вызова SaveChanges |
|||
#18+
Тройка, Цель поиска какая? Сформировали полностью объект. Сбросили в контекст. На коммит сбросите в базу. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
14.02.2018, 17:17
|
|||
---|---|---|---|
Чтение данных вставленных в контекст до вызова SaveChanges |
|||
#18+
Petro123, Есть процедура, в ней я в том числе добавляю запись, потом мне ДО сохранения результатов ее работы в базу нужно вызвать еще одну процедуру, передав ей контекст EF. И по логике работы этой вызываемой процедуры мне нужно что бы если если я вставил запись, но еще не сохранил ее в базу, что бы она была "видна". Т.е. мне нужно учитывать и то что уже есть в базе и то что я только собираюсь туда добавить. Понятно что запись можно передавать параметром и учитывать ее. Но хорошо сейчас она одна, а что делать если их 10 и добавлены они в 10 разных таблиц? P.S. Я до недавнего времени в основном бизнес логику писал в хранимках базы данных и там такой проблемы не было. Т.е. если я в своей транзакции вставил в таблицу запись но еще ее не закоммитил, то она мне при дальнейших запросах к таблице доступна так же как и уже закоммиченные записи. Возможно, при работе с EF нужен немного другой подход в этом вопросе. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
14.02.2018, 17:32
|
|||
---|---|---|---|
Чтение данных вставленных в контекст до вызова SaveChanges |
|||
#18+
Тройка, То что вы хотите в хибере называется кэш сессии. Надо глянуть, есть ли это в EF. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
14.02.2018, 17:49
|
|||
---|---|---|---|
Чтение данных вставленных в контекст до вызова SaveChanges |
|||
#18+
Тройка, Ну, вроде тоже самое, только название другое. Выше Shocker.Pro ответил) ... |
|||
:
Нравится:
Не нравится:
|
|||
|
14.02.2018, 18:03
|
|||
---|---|---|---|
Чтение данных вставленных в контекст до вызова SaveChanges |
|||
#18+
Petro123Тройка, Ну, вроде тоже самое, только название другое. Выше Shocker.Pro ответил) Хм, ну этот код вроде даже работает Код: c# 1. 2. 3. 4.
Причем по идее он сперва ищет в контексте, и если нашел, то в базу не лезет. Запилить что ли генерик экстеншен метод) Для коллекций по идее аналогично можно делать Union от запроса базы и от запроса в кэш ... |
|||
:
Нравится:
Не нравится:
|
|||
|
14.02.2018, 18:42
|
|||
---|---|---|---|
Чтение данных вставленных в контекст до вызова SaveChanges |
|||
#18+
Тройка, Зачем другой код сделали разрабы непонятно. В хибере что все запрсы к session. Session.find(имя класса, id). ... |
|||
:
Нравится:
Не нравится:
|
|||
|
14.02.2018, 18:44
|
|||
---|---|---|---|
Чтение данных вставленных в контекст до вызова SaveChanges |
|||
#18+
ТройкаПричем по идее он сперва ищет в контексте Это не правда. В контексте ищутся материализованные ентити сугубо через Find, также используется во внутренней материализации для сокращения количества запросов. Остальное -- сказки. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=17&tablet=1&tid=1349220]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
65ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
48ms |
get tp. blocked users: |
1ms |
others: | 322ms |
total: | 483ms |
0 / 0 |