首页 新闻 会员 周边

net core ef DBcontext 线程安全问题

0
[待解决问题]

net core 2.1 的项目, 有些地方业务比较复杂,所以经常使用到 DBContext 进行查询之类的操作, 程序运行 时不时的会爆出

A second operation started on this context before a previous operation completed. Any instance members are not guaranteed to be thread safe.

这样的问题,目前DBContext  就是通过 startup里边进行注入, 然后service里边通过构造函数注入赋值的方式获取到context,这个问题是什么原因可能造成的?

死神的背影的主页 死神的背影 | 小虾三级 | 园豆:667
提问于:2018-08-13 17:45
< >
分享
所有回答(4)
0

建议检查一下是不是代码中有地方调用 async 方法(比如 ToListAsync )时漏写了 await

dudu | 园豆:31003 (高人七级) | 2018-08-13 18:23
0

用core就别什么service了

你的问题应该是service对象的生命周期没管理好.

吴瑞祥 | 园豆:29449 (高人七级) | 2018-08-13 19:20
0

每次查询结束后尽量都 ToXxx()一下,比如ToList。ToXxx就意味着查询结束,你这个问题多半是因为代码上下文中前面的代码没有结束查询。

Eysa | 园豆:62 (初学一级) | 2018-08-15 17:15
0

http://www.cnblogs.com/xishuai/p/ef-dbcontext-thread-safe.html

事理 | 园豆:244 (菜鸟二级) | 2018-08-16 18:48
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册