通过 entity framework 将数据库 Auto_Close 值设置为默认关闭

Set database Auto_Close value to be OFF by default via entity framework

我首先使用 EF 代码,然后 sql 服务器通过

创建数据库
 public static void Create(DbConnection connection)
    {
        using (var context = new EmptyContext(connection))
            ((IObjectContextAdapter)context).ObjectContext.CreateDatabase();
    }

默认情况下,这似乎会创建一个 Auto_Close 选项设置为 TRUE 的数据库。请注意,模型数据库 Auto_Close 默认设置为 FALSE。

因此,EF 似乎将此选项的值设置为 TRUE。

有谁知道如何在创建数据库时覆盖此行为?

我需要在创建数据库时执行此操作,而不是在创建后更改数据库选项。

谢谢!

好吧,似乎 AUTO_CLOSE 在 sql express 和 localdb 中默认设置为 TRUE。这被嵌入到 CREATE db sql 函数中,因此在创建数据库之前不能更改。

http://blogs.msdn.com/b/sqlexpress/archive/2008/02/22/sql-express-behaviors-idle-time-resources-usage-auto-close-and-user-instances.aspx

因此,将 AUTO_CLOSE 设置为 false 的唯一方法是 运行 一个 ALTER DATABASE 命令,或者直接在 sql 服务器中创建数据库,在这种情况下AUTO_CLOSE 函数将镜像模型数据库的值(默认情况下为 FALSE)。