Asp.net mvc 实体框架-调试时获得数十个类似查询

Asp.net mvc 实体框架-调试时获得数十个类似查询,asp.net-mvc,entity-framework,Asp.net Mvc,Entity Framework,我正在处理一个我自己没有设置的应用程序。我目前的工作方式是编写T-SQL脚本来手动迁移数据库。这对我来说真的很好 然而,当我开始调试时,我得到了(而且我似乎不是一直都得到它?)许多似乎与迁移数据库有关的查询。一些例子: IF db_id(N'dbname') IS NOT NULL SELECT 1 ELSE SELECT Count(*) FROM sys.databases WHERE [name]=N'dbname' SELECT COLUMN_NAME FROM INFORMATION_

我正在处理一个我自己没有设置的应用程序。我目前的工作方式是编写T-SQL脚本来手动迁移数据库。这对我来说真的很好

然而,当我开始调试时,我得到了(而且我似乎不是一直都得到它?)许多似乎与迁移数据库有关的查询。一些例子:

IF db_id(N'dbname') IS NOT NULL SELECT 1 ELSE SELECT Count(*) FROM sys.databases WHERE [name]=N'dbname'
SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS where TABLE_NAME=@Table
我看到这些重复了很多次

到目前为止,我试过:

public class MyConfig : DbConfiguration
{
    public MyConfig()
    {
        SetDatabaseInitializer<DatabaseContext>(null);
    }
}
公共类MyConfig:DbConfiguration
{
公共MyConfig()
{
SetDatabaseInitializer(null);
}
}
……和:

    public DatabaseContext()
        : base("DefaultConnection")
    {
        Configuration.LazyLoadingEnabled = false;
        Database.SetInitializer<DatabaseContext>(null);
    }

    public DatabaseContext(string connectionString)
        : base(connectionString)
    {
        Configuration.LazyLoadingEnabled = false;
        Database.SetInitializer<DatabaseContext>(null);
    }
公共数据库上下文()
:base(“默认连接”)
{
Configuration.LazyLoadingEnabled=false;
Database.SetInitializer(null);
}
公共数据库上下文(字符串连接字符串)
:基本(连接字符串)
{
Configuration.LazyLoadingEnabled=false;
Database.SetInitializer(null);
}
这些断点被命中,因此不应再设置这些初始值设定项。然而,它似乎试图对我每次加载页面时触摸的每一张表进行某种形式的表扫描


在生产中,这似乎不会发生……但如果页面默认加载时间为10秒,则很难修复(实际的)性能问题……

如果这是一个web项目,每个请求中会创建多少db上下文?您好@jao,我在过去几天里看得更多一些,对于某些页面可能很容易达到40次。如果我试图将上下文缓冲到一个静态变量中,它们将在页面加载过程中的某个时刻被释放,并导致页面加载崩溃。那么注入dbcontext呢?(不确定这是否适用于40种不同的上下文,但如果这40种上下文始终相同,则最好只注入一次)