首页 新闻 会员 周边

.net 4.5 访问数据库有时会错,大部分情况正常,但有时会报这个错,

0
悬赏园豆:5 [已解决问题] 解决于 2018-09-08 16:26
The context cannot be used while the model is being created. This exception may be thrown if the context is used inside the OnModelCreating method or if the same context instance is accessed by multiple threads concurrently. Note that instance members of DbContext and related classes are not guaranteed to be thread safe.

.net 4.5 访问数据库有时会错,大部分情况正常,但有时会报这个错,

weisp的主页 weisp | 初学一级 | 园豆:3
提问于:2018-08-30 11:24
< >
分享
最佳答案
0

DbContext 实例生命周期的问题

收获园豆:5
dudu | 高人七级 |园豆:31007 | 2018-08-30 16:46
其他回答(4)
0

简单的翻译一下,这说的是 

请注意 DbContext 和相关的类是不承诺线程安全的。

所以,别指望是Framework 的Bug了,是你的代码问题。

 

正因为是线程造成的问题,所以时有时无。建议仔细认真研究一下 Entity Framework 相关教程。

爱编程的大叔 | 园豆:30839 (高人七级) | 2018-08-30 11:28
0
public TasterDbContext()
: base("TasterConnection")
{
Database.SetInitializer<TasterDbContext>(null);
//在应用程序启动时自动升级(MigrateDatabaseToLatestVersion初始化器)
Database.SetInitializer(new MigrateDatabaseToLatestVersion<TasterDbContext, Migrations.Configuration>());
}
 
有可能是启动策略问题
Stupid_Bire | 园豆:208 (菜鸟二级) | 2018-08-30 11:56
0

你可以试试多个并发操作一个连接,你看看代码你会怎么写出来。

花飘水流兮 | 园豆:13560 (专家六级) | 2018-09-01 10:34
0

共用一个上下文

weisp | 园豆:3 (初学一级) | 2018-09-08 16:25
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册