powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Пара нубских вопросов по EF.
10 сообщений из 10, страница 1 из 1
Пара нубских вопросов по EF.
    #37631969
Monochromatique
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день.
1. Надо ли как-то специально закрывать connection при использовании EF. Или же просто юзать using() - и всё? Насколько я понял из примеров - использование using - строго обязательно?

2. Я работаю с данными в клиенте, потом залезаю в базу руками и меняю данные. В клиенте измененных данных нет (не появляются). Надо переинициализировать Context или его можно каким-то образом очистить? Можно ли так науськать EF, что определенные сущности он брал из базы при КАЖДОМ считывании?

3. Иногда бывает ситуация, что при SaveChanges() программа "уходит в себя". Интерфейсный поток типа работает, но дальше saveChanges() выполнение не продигается, но и ошибок никаких не выдает. Обычно это связано либо с отношениями many-2-many, либо с путаницей с объектами и контекстом. Как бы там ни было - можно ли узнать - что ей не нравится и почему прога сваливается в сбой?

Спасибо.
...
Рейтинг: 0 / 0
Пара нубских вопросов по EF.
    #37631970
Monochromatique
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Совсем забыл

4. Используется model first. Приложение в стадии доводки, но должно уже работать у пользователей. Но генерируемый скрипт создает чистую БД, тогда как в базе полно вручную набитых данных. Как быть в этом случае?
...
Рейтинг: 0 / 0
Пара нубских вопросов по EF.
    #37632036
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Monochromatique1. Надо ли как-то специально закрывать connection при использовании EF. Или же просто юзать using() - и всё? Насколько я понял из примеров - использование using - строго обязательно?В каких-то случаях желательно, в каких-то обязательно. Зависит от стратегии управления соединением с БД.
Monochromatique2. Я работаю с данными в клиенте, потом залезаю в базу руками и меняю данные. В клиенте измененных данных нет (не появляются). Надо переинициализировать Context или его можно каким-то образом очистить?Создать новый.
MonochromatiqueМожно ли так науськать EF, что определенные сущности он брал из базы при КАЖДОМ считывании?Да.
Monochromatique3. Иногда бывает ситуация, что при SaveChanges() программа "уходит в себя". Интерфейсный поток типа работает, но дальше saveChanges() выполнение не продигается, но и ошибок никаких не выдает. Обычно это связано либо с отношениями many-2-many, либо с путаницей с объектами и контекстом. Как бы там ни было - можно ли узнать - что ей не нравится и почему прога сваливается в сбой?Он не любит большое количество записей в кэше.
Monochromatique4. Используется model first. Приложение в стадии доводки, но должно уже работать у пользователей. Но генерируемый скрипт создает чистую БД, тогда как в базе полно вручную набитых данных. Как быть в этом случае?Очевидно, после генерации добавить данные в базу любым доступным способом. А лучше распространять программу с заранее созданной пустой ( содержащей данные только классификаторов ) базой.
...
Рейтинг: 0 / 0
Пара нубских вопросов по EF.
    #37632316
Monochromatique
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. Правильно ли я понял, что создание ОДНОГО экземпляра контекста и хранение его "всю дорогу" - это неправильная политика?
То есть - нужна инфа из базы - создали контекст, получили инфу, обработали, потом закрыли. Так?

1.1 Что делать, если контекст уже нужно/можно закрыть, но полученные сущности необходимо сохранить для дальнейшей работы?
Что я потеряю, если закрою контекст? Если, скажем, мне понадобится их сохранить - то мне нужно будет создать новый контекст и присоединить ЭТИ сущности к нему?

3. Иногда бывает ситуация, что при SaveChanges() программа "уходит в себя". Интерфейсный поток типа работает, но дальше saveChanges() выполнение не продигается, но и ошибок никаких не выдает. Обычно это связано либо с отношениями many-2-many, либо с путаницей с объектами и контекстом. Как бы там ни было - можно ли узнать - что ей не нравится и почему прога сваливается в сбой?

-- Он не любит большое количество записей в кэше.

Что значит "не любит"? Как это, пардон, не любит? У меня там две записи, например. И потом вопорс скорее про то - КАК УВИДЕТЬ ошибку.


-- "Очевидно, после генерации добавить данные в базу любым доступным способом."
Допустим, у пользователей база - 20 гигобайт. Я добавляю 15 таблиц, через редактирование модели.
Какие варианты?

Или же надо редактировать саму базу данных ONLY & СТРОГО, а потом делать update модели?
...
Рейтинг: 0 / 0
Пара нубских вопросов по EF.
    #37632333
SolYUtor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Monochromatique,
MonochromatiqueПравильно ли я понял, что создание ОДНОГО экземпляра контекста и хранение его "всю дорогу" - это неправильная политика?
Это прямой путь к проблемам. Ибо контекст берёт себе дорогие системные ресурсы, которые надо освобождать как можно скорее. Одна из самых масштабных бед - забытая открытая транзакция.

Рассматривайте контекст как Unit of Work. Поработали, зафиксировали работу, закрыли контекст. Для следующей работы открыли новый контекст. Вопрос только в правильном определении границ Unit Of Work.
...
Рейтинг: 0 / 0
Пара нубских вопросов по EF.
    #37632413
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Monochromatique1. Правильно ли я понял, что создание ОДНОГО экземпляра контекста и хранение его "всю дорогу" - это неправильная политика?
То есть - нужна инфа из базы - создали контекст, получили инфу, обработали, потом закрыли. Так?Да
Monochromatique1.1 Что делать, если контекст уже нужно/можно закрыть, но полученные сущности необходимо сохранить для дальнейшей работы?
Что я потеряю, если закрою контекст? Если, скажем, мне понадобится их сохранить - то мне нужно будет создать новый контекст и присоединить ЭТИ сущности к нему?Да
Monochromatique3. Иногда бывает ситуация, что при SaveChanges() программа "уходит в себя". Интерфейсный поток типа работает, но дальше saveChanges() выполнение не продигается, но и ошибок никаких не выдает. Обычно это связано либо с отношениями many-2-many, либо с путаницей с объектами и контекстом. Как бы там ни было - можно ли узнать - что ей не нравится и почему прога сваливается в сбой?

-- Он не любит большое количество записей в кэше.

Что значит "не любит"? Как это, пардон, не любит? У меня там две записи, например. И потом вопорс скорее про то - КАК УВИДЕТЬ ошибку.Тогда не знаю. У меня он повис, когда в кэше было ~8000 записей. Зависаний по другим причинам не наблюдалось.
Monochromatique-- "Очевидно, после генерации добавить данные в базу любым доступным способом."
Допустим, у пользователей база - 20 гигобайт. Я добавляю 15 таблиц, через редактирование модели.
Какие варианты?Править базу рукописным DDL-скриптом.
MonochromatiqueИли же надо редактировать саму базу данных ONLY & СТРОГО, а потом делать update модели?Типа того. Главное, чтобы модель генерировалась по БД а не наоборот.
...
Рейтинг: 0 / 0
Пара нубских вопросов по EF.
    #37636152
GFX
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КMonochromatique1.1 Что делать, если контекст уже нужно/можно закрыть, но полученные сущности необходимо сохранить для дальнейшей работы?
Что я потеряю, если закрою контекст? Если, скажем, мне понадобится их сохранить - то мне нужно будет создать новый контекст и присоединить ЭТИ сущности к нему?Да


Присоединяюсь к этому вопросу.
Полный граф объекта получен в одном контексте, одно из навигационных свойств в другом контексте. Это навигационное свойство присваиваем одному из свойств нашего объекта.
Сохранение происходит в другом контексте.
Вопрос: как присоединить отсоединенный объект со всеми навигационными свойствами и вложенными коллекциями к контексту.
Вобщем нужно присоединить новому контексту полный граф объекта, после чего вызывать SaveChanges и увидеть, что одним коннектом и несколькими sql-запросами к БД сохранился бизнес-объект.
Спасибо.
...
Рейтинг: 0 / 0
Пара нубских вопросов по EF.
    #37636199
SolYUtor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GFX,

Я конечно не открою Америку, но: чем успешно преодолевать трудности, лучше их себе не создавать. Вместо скрещивания разноконтекстных объектов, лучше работать в одном контексте, пока работа не будет завершена.
...
Рейтинг: 0 / 0
Пара нубских вопросов по EF.
    #37636443
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SolYUtor,

блин, они датасет ругают :)
...
Рейтинг: 0 / 0
Пара нубских вопросов по EF.
    #37636497
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SolYUtorGFX,

Я конечно не открою Америку, но: чем успешно преодолевать трудности, лучше их себе не создавать. Вместо скрещивания разноконтекстных объектов, лучше работать в одном контексте, пока работа не будет завершена.+1

Единственная необходимость работы с разными контекстами - чтение и сохранение данных в разных сессиях ( разные http-запросы, разные buton_click и т. п. ).

А при сохранении в другой сессии соответствующим образом присоединить все объекты вроде как не проблема.
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Пара нубских вопросов по EF.
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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