gpt4 book ai didi

c# - 在blazor中使用EfCore延迟加载代理

转载 作者:行者123 更新时间:2023-12-02 11:20:31 27 4
gpt4 key购买 nike

我在Blazor的EfCore中使用代理时遇到问题。如果在页面加载后的某个时间将对象传递给正在访问其代理属性的子组件,则上下文可能已经被释放,从而导致崩溃

An attempt was made to lazy-load navigation property 'Description' on entity type 'WeatherForecastProxy' after the associated DbContext was disposed.



需要使用延迟加载代理来避免在主/明细样式用户界面中进行笛卡尔爆炸,因为主列表中的每个实体都有自己的拥有实体的子列表,而子实体又拥有自己的联接。

基于官方blazor模板的最小可复制项目位于: https://github.com/alextech/sample_use_proxy_blazor

Utility Base Component class应该是在组件之间共享服务以避免线程问题的解决方案,就像 https://github.com/aspnet/AspNetCore/issues/18076https://github.com/aspnet/AspNetCore/issues/10448所建议的那样,但它仍然会导致崩溃

A second operation started on this context before a previous operation completed. This is usually caused by different threads using the same instance of DbContext.



我是在正确使用该实用程序基础组件类功能,还是以一种意想不到的方式使用efcore/blazor组合?

最佳答案

不要将DAL模型直接传递到组件中,而是先将它们映射到ViewModels中,这是最佳实践。
如果您尝试从Webassembly Client应用程序访问DAL模型,那是不可能的

关于c# - 在blazor中使用EfCore延迟加载代理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59569248/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com