|
EF 5 - можно обновить записи в БД не загружая их?
|
|||
---|---|---|---|
#18+
handmadeFromRuViPRos, а не надо дерзить "вася". свой непонятный велик впаривать супер не профессионально да ниче я не впариваю, а то что непонятно тебе - эт я понимаю. :) ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2013, 13:39 |
|
EF 5 - можно обновить записи в БД не загружая их?
|
|||
---|---|---|---|
#18+
ViPRosда токо и слышу это низзя и это низзя, но велик хорош:) Можно, но осторожно :) Об датасеты можно споткнуться и лоб расшибить... ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2013, 14:20 |
|
EF 5 - можно обновить записи в БД не загружая их?
|
|||
---|---|---|---|
#18+
МСУ, эт точно, тут надо понимать что делаешь, а там дядя за тебя немного подумал, а остальное забыл додумать ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2013, 14:55 |
|
EF 5 - можно обновить записи в БД не загружая их?
|
|||
---|---|---|---|
#18+
МСУ http://codearticles.ru/articles/421 автор// Update var obj = new Article { ArticleId = 1 }; context.Articles.Attach(obj); obj.Title = "123"; context.SaveChanges(); Причём, как я понимаю, нет разницы, когда делать аттач - до изменения объекта или после? Я вот сделал после и тоже сработало. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2013, 16:15 |
|
EF 5 - можно обновить записи в БД не загружая их?
|
|||
---|---|---|---|
#18+
user7320Причём, как я понимаю, нет разницы, когда делать аттач - до изменения объекта или после? Я вот сделал после и тоже сработало. Подробно про присоединение: Присоединение и отсоединение объектов (платформа Entity Framework) ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2013, 16:31 |
|
EF 5 - можно обновить записи в БД не загружая их?
|
|||
---|---|---|---|
#18+
Теперь не могли бы вы в свете этого посмотреть мой код под конкретную задачу? У меня всё работает, но уж слишком длинно и многословно по коду получается. Может, можно короче? Есть две БД (старая и новая), в которых одинаковые по схеме таблицы. Есть два ORM, созданных EF. Надо перенести записи из старой БД в новую. Часть записей уже перенесена, но без поля Description. Мне надо обновить у перенесённых записей в новой БД Description'ы из записей в старой БД (о переносе всех остальных записей из старой БД речи пока не идёт). Как это сделать? Надо учесть, что у ещё у таблиц есть тяжёлое поле с картинкой, которую трогать не надо. И я хочу, как раньше говорил, добавить Description'ы без вытаскивания картинки. Вот схематично: таблица в старой БД idnamedescriptionimage1aaa<binary data>2bbb<binary data>3ccc<binary data> таблица в новой БД idnamedescriptionimage1a<binary data>2b<binary data> Надо добавить description'ы aa и bb в записи в новой БД, считав их из старой. Не недостающую в новой БД запись 3 пока забить. Вот мой подход. 1. Создаю два контекста (для старой и новой БД) и считываю в облегчённом формате МИНИМАЛЬНЫЕ необходимые данные (айдишники нужны для связи с записями в конкретной БД, а имена - для связи одинаковых записей между разными БД): (почему-то перестали работать выпадающие списки при редактировании, причём что на Опере, что в ФФ - поэтому делаю просто фиксированной ширины) Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20.
2. В старых биогруппах есть нужный мне Description, которые надо перенести в новые. Поэтому фильтрую старые так, чтобы в них оказались только те биогруппы, которые уже есть в таблице в новой БД. Посколько айдишники в разных БД разные, фильтровать остаётся разве что по именам, благо что имена у меня уникальные (на это есть констрэйнт): Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8.
3. Теперь из облегчённых отфильтрованных объектов создаю облегчённые же (без картинок) объекты для вставки в БД и, собственно, вставляю их: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22.
... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2013, 16:54 |
|
EF 5 - можно обновить записи в БД не загружая их?
|
|||
---|---|---|---|
#18+
С try/catch херня пока - забыл вырезать. Не обращайте внимания. Только на код в try. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2013, 16:58 |
|
EF 5 - можно обновить записи в БД не загружая их?
|
|||
---|---|---|---|
#18+
user7320С try/catch херня пока - забыл вырезать. Не обращайте внимания. Только на код в try. Надо было сохранение изменений в try запихать, да... ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2013, 16:59 |
|
EF 5 - можно обновить записи в БД не загружая их?
|
|||
---|---|---|---|
#18+
МСУ, Не убедил авторЕдинственный плюс в разнесении блобов, а снижение трафика, а уменьшение памяти под кеш, более понятная структура, вообще имхо все тяжелые данные должны лежать в отдельной таблице, на худой конец о чем ты толкуешь)) - никто не запрещает, но даже в этом случае пользоваться атрибутом LazyLoadAttribute надо обязательно - что бы не возникало вопросов как у ТА ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2013, 19:20 |
|
EF 5 - можно обновить записи в БД не загружая их?
|
|||
---|---|---|---|
#18+
Где-то в степи, не понял, о каком снижении трафика идет речь? Если мне блобы не нужны, я их не тяну. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2013, 20:01 |
|
EF 5 - можно обновить записи в БД не загружая их?
|
|||
---|---|---|---|
#18+
Посмотрите мой код, пожалуйста. Это нормально работать с "облегчёнными" данными в памяти, а потом аттачить их к контексту, когда перекидываешь их из одной БД в другую при моих условиях? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2013, 10:13 |
|
|
start [/forum/topic.php?fid=17&gotonew=1&tid=1349911]: |
0ms |
get settings: |
9ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
125ms |
get topic data: |
9ms |
get first new msg: |
7ms |
get forum data: |
2ms |
get page messages: |
46ms |
get tp. blocked users: |
1ms |
others: | 265ms |
total: | 478ms |
0 / 0 |