|
Проблема с EF Core DbContext в async методе API для InMemoryDatabase
|
|||
---|---|---|---|
#18+
DbContext инжектится в контроллер (стандартный IoC). В некотором методе на SaveChangesAsync : Код: c# 1. 2. 3. 4. 5.
Exception: "Cannot access a disposed object. A common cause of this error is disposing a context that was resolved from dependency injection and then later trying to use the same context instance elsewhere in your application. This may occur if you are calling Dispose() on the context, or wrapping the context in a using statement. If you are using dependency injection, you should let the dependency injection container take care of disposing context instances" UseInMemoryDatabase вариант используется, ServiceLifetime.Singleton эту проблему в режиме разработки/тестирования решает: Код: c# 1. 2. 3. 4.
Как тут правильно разрулить для случая "контекст-на-запрос"? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.03.2018, 19:39 |
|
Проблема с EF Core DbContext в async методе API для InMemoryDatabase
|
|||
---|---|---|---|
#18+
love_bach, Выполнять правила: - не пихать асинхронность везде - контекст обычно на время запроса и закрывать сразу. Т.е 0,2 сек. - транзакции как можно короче ... |
|||
:
Нравится:
Не нравится:
|
|||
10.03.2018, 19:48 |
|
Проблема с EF Core DbContext в async методе API для InMemoryDatabase
|
|||
---|---|---|---|
#18+
Petro123love_bach, Выполнять правила: - не пихать асинхронность везде - контекст обычно на время запроса и закрывать сразу. Т.е 0,2 сек. - транзакции как можно короче это капитан-очевидность проблема в рассинхроне времени жизни контекста в стандартном Core API IoC. может конечно и в коде, но, по ексепшену, я пока не могу её локализовать ... |
|||
:
Нравится:
Не нравится:
|
|||
10.03.2018, 21:02 |
|
Проблема с EF Core DbContext в async методе API для InMemoryDatabase
|
|||
---|---|---|---|
#18+
love_bachэто капитан-очевидность проблема в рассинхроне времени жизни контекста в стандартном Core API IoC. может конечно и в коде, но, по ексепшену, я пока не могу её локализовать я выше рекомендации MS и дал капитану очевидности. Чтобы локализовать нужно вывести в лог ошибки, стектрейс и время закрытия\открытия контекста. Ваш капиатан-очевидность. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.03.2018, 21:45 |
|
Проблема с EF Core DbContext в async методе API для InMemoryDatabase
|
|||
---|---|---|---|
#18+
love_bachКак тут правильно разрулить для случая "контекст-на-запрос"? какой DI контейнер используете? покажите как регистрируете (не синглетон) если стандартный, то AddScoped ... |
|||
:
Нравится:
Не нравится:
|
|||
11.03.2018, 00:25 |
|
|
start [/forum/topic.php?fid=18&fpage=22&tid=1355282]: |
0ms |
get settings: |
7ms |
get forum list: |
26ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
51ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
42ms |
get tp. blocked users: |
1ms |
others: | 283ms |
total: | 429ms |
0 / 0 |