正如其他人指出的那样,如果您没有手动打开连接并将其传递给DbContext构造函数,则不会(自动)发生连接。可以在此处找到一个具体详细的答案:https://dev59.com/LaPia4cB1Zd3GeqP3shz#45330219。@ajcvickers在 https://github.com/aspnet/EntityFrameworkCore/issues/7810 中的评论清楚地解释了这一点:如果EF创建DbConnection对象,则EF将确保在DbContext被处理时它被处理。另一方面,如果某些其他代码创建DbConnection对象并将其传递给EF,则其他代码应负责适当处理该连接。类似的规则也适用于打开和关闭连接。如果EF打开连接,则EF将在完成后关闭连接。如果您的代码打开连接,则您的代码应关闭连接。
DbContext
,并且通过连接字符串指定是否使用。请参阅:ConnectionString
(在“pooling”一节中)。 - Tim Schmelter