powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / один dbContext на запрос
11 сообщений из 11, страница 1 из 1
один dbContext на запрос
    #38950478
_jt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подскажите материалы на изучения в варианте использования 1 экземпляра контекста на запрос.
Не понятно как работать с сущностными в которых имеются навигационные свойства.
Получив SomeEntity допустим в некотором методе GetAll(), я произвожу изменения. Для фиксирования изменений будет использоваться ведь другой экземпляр контекста. Что делать со связанными сущностными? Присоединять их к этому чистому контексту?
...
Рейтинг: 0 / 0
один dbContext на запрос
    #38950482
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
если связанная сущность не менялась и у основной сущности правильно заполнен внешний ключ (ссылка на идентификатор связанной сущности), то этого достаточно.
...
Рейтинг: 0 / 0
один dbContext на запрос
    #38950483
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_jt1 экземпляра контекста на запрос.а вообще - какой запрос имеется ввиду? http-запрос или запрос к БД?
...
Рейтинг: 0 / 0
один dbContext на запрос
    #38950492
_jt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Proесли связанная сущность не менялась и у основной сущности правильно заполнен внешний ключ (ссылка на идентификатор связанной сущности), то этого достаточно.
Тогда нужно чтобы сущность и связанные с ней были отключены от 1-ого контекста. Прочитал что при Dispose DbContext они остаются подключенными.
https://social.msdn.microsoft.com/Forums/en-US/501d7b99-0cb9-44b6-b2cd-16275a151b31/an-entity-object-cannot-be-referenced-by-multiple-instances-of-ientitychangetracker-what-is-it?forum=adodotnetentityframework%5D]https://social.msdn.microsoft.com/Forums/en-US/501d7b99-0cb9-44b6-b2cd-16275a151b31/an-entity-object-cannot-be-referenced-by-multiple-instances-of-ientitychangetracker-what-is-it?forum=adodotnetentityframework]

авторbut if you kill an instance of an objectContext without detaching the entities first the entity still think it's attached to the context.
Похоже что так. Использую using:
Код: c#
1.
2.
3.
4.
5.
6.
7.
try
            {
                using (var context = new Experimental8ModelContainer())
                {
                    return base.GetAll(context);
                }
            }


Приатачиваю связанную сущность, вызываю SaveChanges(), в итоге возникает исключение:
авторAn entity object cannot be referenced by multiple instances of IEntityChangeTracker.
Использовать MergeOption.NoTracking в получение Сета?
Shocker.Pro_jt1 экземпляра контекста на запрос.а вообще - какой запрос имеется ввиду? http-запрос или запрос к БД?
http-запрос.
...
Рейтинг: 0 / 0
один dbContext на запрос
    #38950494
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_jtодин dbContext на запрос_jthttp-запрос._jtдругой экземпляр контекставам в собственных словах не видно противоречия?
...
Рейтинг: 0 / 0
один dbContext на запрос
    #38950505
_jt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторвам в собственных словах не видно противоречия?
Нет, я только начал осваивать веб разработку. Объясните, поподробней.
...
Рейтинг: 0 / 0
один dbContext на запрос
    #38950509
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В схеме "один dbContext на запрос" в пределах одного http-запроса существует только один dbContext, а, стало быть все изложенные вами проблемы просто не должны возникнуть, то есть создавать какие-то дополнительные контексты и цеплять туда сущности просто-напросто не требуется.
...
Рейтинг: 0 / 0
один dbContext на запрос
    #38950552
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Зачем изобретать велосипед с отслеживанием изменений? Лучше взять готовый OData, он на клиенте может сам травить измерения, а при сохранении контекста всё это скором уйдёт на сервер приложений через http.
...
Рейтинг: 0 / 0
один dbContext на запрос
    #38950554
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
трачить, скопом... С мобильника пишу.
...
Рейтинг: 0 / 0
один dbContext на запрос
    #38950753
_jt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Посмотрел OData, интересная штука. Вышла Microsoft.OData.EntityFrameworkProvider для EF6 в альфе. Еще допиливается.
У меня скорее другая задача - передавать граф объектов сущностей между слоями приложения. Не таскать с собой контекст между отдельными частями логики.
...
Рейтинг: 0 / 0
один dbContext на запрос
    #38955107
_jt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУЗачем изобретать велосипед с отслеживанием изменений? Лучше взять готовый OData, он на клиенте может сам травить измерения, а при сохранении контекста всё это скором уйдёт на сервер приложений через http.
WCF Data Service предоставляет только CRUD операции. Я хочу чтобы логика была в отдельном звене и клиент взаимодействовал исключительно с ней. Доступ к данным и логика на одном уровне, тут OData не нужен. Нужно взаимодействие клиента и бизнес-логики POCO объектами.
Интересные материалы, может быть кому-нибудь пригодится:
https://msdn.microsoft.com/ru-ru/data/jj613668
Книга: Lerman J. Miller R. - Programming Entity Framework DbContext - 2012
Глава 4. Working with Disconnected Entities Including N-Tier Applications
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / один dbContext на запрос
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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