使用实体框架时如何设置最大数据库大小?

Posted

技术标签:

【中文标题】使用实体框架时如何设置最大数据库大小?【英文标题】:How do I set the maximum database size when using Entity Framework? 【发布时间】:2011-11-02 02:50:26 【问题描述】:

我在我的 WPF 应用程序中使用实体框架和 SQL CE 4.0。如何根据这篇文章设置最大数据库大小,http://blogs.msdn.com/b/sqlservercompact/archive/2007/06/13/the-story-of-max-database-size-connection-string-parameter.aspx 其中指出:

我们并不总是增长到 4 GB,分配共享内存是不明智的 以容纳所有页面条目/引用以支持 4 GB。

目前,尝试添加新数据时出现以下错误:

The database file is larger than the configured maximum database size.

但是,DB 仅接近 256MB,这与上面链接中的文章一致。

【问题讨论】:

【参考方案1】:

这似乎有效:

SqlCeConnectionFactory sqlCeConnection = 
    new SqlCeConnectionFactory("System.Data.SqlServerCe.4.0", 
    "", "Max Database Size=4000;Persist Security Info=False;");
DbDatabase.DefaultConnectionFactory = sqlCeConnection;
DbDatabase.SetInitializer(new SampleData());

其中第三个参数是连接字符串,您可以更改参数Max Database Size,否则默认为256MB。

【讨论】:

【参考方案2】:

或者使用app.config:

<entityFramework>
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlCeConnectionFactory, EntityFramework">
        <parameters>
            <parameter value="System.Data.SqlServerCe.4.0"/>
            <parameter value=""/>
            <parameter value="Max Database Size=4000"/>
        </parameters>
    </defaultConnectionFactory>
</entityFramework>

【讨论】:

以上是关于使用实体框架时如何设置最大数据库大小?的主要内容,如果未能解决你的问题,请参考以下文章

System.OutOfMemoryException - 当实体框架查询 Varbinary 类型的太大数据时

(Play 2.0) 为 AnyContent 设置最大 POST 大小

Base64 字符串的实体框架列类型

使用实体框架最大化性能 [重复]

我应该如何设置我的集成测试以使用带有实体框架的测试数据库?

首次使用实体框架代码时将外键设置为 null