|
Изменения не влияют на EntityState (остаётся Detached)
|
|||
---|---|---|---|
#18+
Здравствуйте. Прошу помощи! Есть DbContext context с 2-мя сущностями. Если добавляю новую запись к одной из сущностей Код: c# 1.
- всё в порядке: Код: c# 1.
и SaveChanges() успешно добавляет запись. Но изменение не работает! Меняю значение: Код: c# 1.
а статус не становится Modified, а остаётся: Код: c# 1.
И, конечно, я не могу сохранить изменение. Что я делаю не так? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.04.2013, 11:52 |
|
Изменения не влияют на EntityState (остаётся Detached)
|
|||
---|---|---|---|
#18+
Ещё выяснил, что если после изменения сущности1, повторить их, но уже ссылаясь на сущность непосредственно через context, то тогда изменения в Поле1 сохранятся в базе: Код: c# 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
19.04.2013, 12:46 |
|
Изменения не влияют на EntityState (остаётся Detached)
|
|||
---|---|---|---|
#18+
Ну так и надо делать, чтобы сущность была загружена в expression tree. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.04.2013, 13:03 |
|
Изменения не влияют на EntityState (остаётся Detached)
|
|||
---|---|---|---|
#18+
А как в этом случае отделять функционал хранилища данных от webUI? Хранилище реализовано в отдельном проекте. В нём реализована связка сущностей и таблиц БД: Код: c# 1. 2. 3. 4. 5.
В нём реализован метод получения сущности и метод сохрания: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
Из вне (webUI) я получаю Products, делаю там изменения и хочу методом SaveProduct сохранить изменения. Как правильно сделать? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.04.2013, 13:14 |
|
Изменения не влияют на EntityState (остаётся Detached)
|
|||
---|---|---|---|
#18+
Код: c# 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
19.04.2013, 13:58 |
|
Изменения не влияют на EntityState (остаётся Detached)
|
|||
---|---|---|---|
#18+
Алексей К, спасибо за совет. Теперь никак не могу добраться до сущности EntityState. Это же перечисление из System.Data? Ругается на System.Data.EntityState.Modified - что не существует. Что я забыл подключить? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.04.2013, 14:12 |
|
Изменения не влияют на EntityState (остаётся Detached)
|
|||
---|---|---|---|
#18+
Andrey_VPАлексей К, спасибо за совет. Теперь никак не могу добраться до сущности EntityState. Это же перечисление из System.Data? Ругается на System.Data.EntityState.Modified - что не существует. Что я забыл подключить?А так? Код: c# 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
19.04.2013, 14:50 |
|
Изменения не влияют на EntityState (остаётся Detached)
|
|||
---|---|---|---|
#18+
Алексей К, так тоже самое. Пишет, что: The type 'System.Data.EntityState' is defined in an assembly that is not referenced. You must add a reference to assembly 'System.Data.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'. У меня подключена 'System.Data.Entity, Version=4.1.0.0 Зачем требует 4.0.0.0 ? Неужели в 4.1.0.0 удалили 'System.Data.EntityState' ? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.04.2013, 15:01 |
|
Изменения не влияют на EntityState (остаётся Detached)
|
|||
---|---|---|---|
#18+
Это CodeFirst. Там в зависимости от версии он идёт или в System.Data.Entity.dll, входящей в состав .Net Framework 4.5. Или в EntityFramework.dll, устанавливаемой, например, через NuGet. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.04.2013, 15:51 |
|
Изменения не влияют на EntityState (остаётся Detached)
|
|||
---|---|---|---|
#18+
Алексей К, и всё же, предложенный Вами способ не идеален, ведь в результате ВСЕ поля записи будут обновлены, включая те, которые пользователь не трогал. Неужели, верное решение, это тупое сравнивание каждого поля context.Сущность с полем экземляра сущности (который вернул web UI), и в случае неравенства присваивать полю context.Сущность значение поля экземляра сущности ? Есть ли способ перебора всех полей сущности в цикле (например, foreach) ? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.04.2013, 16:45 |
|
Изменения не влияют на EntityState (остаётся Detached)
|
|||
---|---|---|---|
#18+
А гугль расчехлять не пробовали? Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9.
... |
|||
:
Нравится:
Не нравится:
|
|||
19.04.2013, 17:45 |
|
Изменения не влияют на EntityState (остаётся Detached)
|
|||
---|---|---|---|
#18+
Andrey_VPАлексей К, и всё же, предложенный Вами способ не идеален, ведь в результате ВСЕ поля записи будут обновлены, включая те, которые пользователь не трогал.Зато нет лишнего запроса к БД на выборку обновляемой записи. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.04.2013, 06:00 |
|
Изменения не влияют на EntityState (остаётся Detached)
|
|||
---|---|---|---|
#18+
Andrey_VP ВСЕ поля записи будут обновлены, включая те, которые пользователь не трогал. Делаю как тут , вначале этач, затем обновление поля. Обновляет только то, что нужно. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.04.2013, 11:01 |
|
Изменения не влияют на EntityState (остаётся Detached)
|
|||
---|---|---|---|
#18+
Благодарю всех за помощь. К сожалению, ни один из предложенных способов у меня не заработал. Но заработало следующее: поставил EF 4.4 вместо 4.1. Появилось пространство System.Data.Entity.Migrations И появился метод: contextDB.Products. AddOrUpdate (product) После чего contextDB.SaveChanges() работает на ура. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.04.2013, 14:35 |
|
Изменения не влияют на EntityState (остаётся Detached)
|
|||
---|---|---|---|
#18+
Andrey_VPcontextDB.Products. AddOrUpdate (product) Так он же через дополнительный селект работает. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.04.2013, 15:46 |
|
Изменения не влияют на EntityState (остаётся Detached)
|
|||
---|---|---|---|
#18+
Здравствуйте, господа. Приходится опять поднимать эту тему, т.к. возникло очередное непонимание. Мне надо добавить запись в таблицу через EF. Создаю новый объект сущности: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
Добавляю его к контексту: Код: c# 1.
Статус становится: context.Entry(history).State = Added Сохраняю: Код: c# 1.
Статус становится: context.Entry(history).State = Unchanged Захожу в таблицу - и ничего не добавилось. Где рыть? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2013, 13:10 |
|
|
start [/forum/topic.php?fid=17&fpage=26&tid=1350018]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
39ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
52ms |
get tp. blocked users: |
2ms |
others: | 12ms |
total: | 147ms |
0 / 0 |