【发布时间】:2020-04-21 11:12:53
【问题描述】:
我在使用 Blazor 的 EfCore 中使用代理时遇到问题。如果在页面加载后的某个时间将对象传递给正在访问其代理属性的子组件,则上下文可能已经被释放,从而导致崩溃
尝试延迟加载实体类型上的导航属性“描述” 释放关联的 DbContext 后的“WeatherForecastProxy”。
需要延迟加载代理以避免主/详细样式用户界面中的笛卡尔爆炸,其中主列表中的每个实体都有自己的拥有实体的子列表,而这些子列表又拥有自己的连接。
基于官方 blazor 模板的最小可复现项目位于:https://github.com/alextech/sample_use_proxy_blazor
Utility Base Component class 应该是组件之间共享服务以避免线程问题的解决方案,正如 https://github.com/aspnet/AspNetCore/issues/18076 和 https://github.com/aspnet/AspNetCore/issues/10448 所建议的那样,但它仍然会导致崩溃
在前一个操作完成之前,在此上下文中启动了第二个操作。 这通常是由使用相同 DbContext 实例的不同线程引起的。
我是在正确使用该实用程序基础组件类功能,还是以非预期方式使用 efcore/blazor 组合?
【问题讨论】:
-
评论不用于扩展讨论;这个对话是moved to chat。
标签: c# blazor ef-core-3.0 ef-core-3.1