Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Web应用程序DbContext优先使用EF性能_C#_Entity Framework_Asp.net Web Api_Ef Code First - Fatal编程技术网

C# Web应用程序DbContext优先使用EF性能

C# Web应用程序DbContext优先使用EF性能,c#,entity-framework,asp.net-web-api,ef-code-first,C#,Entity Framework,Asp.net Web Api,Ef Code First,我正在开发一个使用EF6的web api应用程序 我为收到的每个Http请求实例化一个DbContext 据我所知,在系统中实例化第一个DbContext(我得到的第一个Http请求)需要很多时间 我想知道在另一个线程上的应用程序启动方法中创建DbContext并立即处理它是否会带来更好的性能- 它不会发出第一个实际设置数据库如此缓慢的请求吗 其他人是如何处理数据库的首次创建的?这是基于你提到的这个真实应用程序的经验的“据我所知”,还是可能这个问题是理论性的,你在某个地方读到过,但你还没有真正衡

我正在开发一个使用EF6的web api应用程序

我为收到的每个Http请求实例化一个DbContext

据我所知,在系统中实例化第一个DbContext(我得到的第一个Http请求)需要很多时间

我想知道在另一个线程上的应用程序启动方法中创建DbContext并立即处理它是否会带来更好的性能- 它不会发出第一个实际设置数据库如此缓慢的请求吗


其他人是如何处理数据库的首次创建的?

这是基于你提到的这个真实应用程序的经验的“据我所知”,还是可能这个问题是理论性的,你在某个地方读到过,但你还没有真正衡量你的案例实际需要多少时间?这更像是一个理论性的问题,我还没有在我的团队项目中测试它。事实上,我没有看到很多人提到它,我想知道为什么其他人不在启动时创建一个无用的DbContext,让EF配置自己,让第一个查询在创建上下文和保存更改时运行得更快?这样做有什么坏处吗?如果你不构建实时系统,很少有用户会时不时地出现一个小的延迟,而不管应用程序的目的是什么,他们可能不会给你带来解决这个问题的机会。一般来说,为什么不这样做呢?我不认为上下文视图是通过新建和处理DbContext来构建的(这使得第一个请求需要更长的时间)。在应用程序启动期间,您需要实际调用针对该DbContext的查询或命令,以使其正常工作。