实体框架 SDF 数据库大小问题

Posted

技术标签:

【中文标题】实体框架 SDF 数据库大小问题【英文标题】:Entity Framework SDF database size issue 【发布时间】:2014-11-18 10:16:08 【问题描述】:

我正在为我的一个项目使用带有实体框架的 SQL Server Compact 版本。我正在从服务器读取文件并将其保存到我的数据库中。问题是数据库大小变大(即超过最大数据库大小)并且应用程序崩溃并显示以下消息:

实体框架底层提供程序在打开时失败 数据库超过最大大小

我从各个网站阅读并尝试添加:

Max Database Size=1024

到我的连接字符串,但它说不支持关键字。我不想使用.mdf,因为客户端也必须安装 SQL Server。

这是我的连接字符串:

<add name="Entities" 
     connectionString="metadata=res://*/DBModel.csdl|res://*/DBModel.ssdl|res://*/DBModel.msl;provider=System.Data.SqlServerCe.4.0;provider connection string=&quot;data source=|DataDirectory|\DB.sdf&quot;" 
     providerName="System.Data.EntityClient" />

【问题讨论】:

也许尝试将文件存储在 外部 .sdf 数据库文件.... 一个选项是查看使用localdb。客户端仍然需要安装一些东西,但它不是完整的 SQL Server,您可以将其安装捆绑到您自己的中。它支持最大 10GB 的数据库。 【参考方案1】:

更改连接字符串:

<add name="Entities" 

  connectionString="metadata=res://*/DBModel.csdl|res://*/DBModel.ssdl|res://*/DBModel.msl;provider=System.Data.SqlServerCe.4.0;provider connection string=&quot;data source=|DataDirectory|\DB.sdf;Max database size=4091&quot;" 
 providerName="System.Data.EntityClient" />

另请注意,SQL Compact 数据库的最大大小为 4 GB

【讨论】:

以上是关于实体框架 SDF 数据库大小问题的主要内容,如果未能解决你的问题,请参考以下文章

如何使用实体框架打开受密码保护的 SQL Server CE 数据库

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

以编程方式确定 SQL Server Compact sdf 文件的大小

映射不区分大小写 - 代码优先 - 实体框架

微软同步框架。 sdf 文件未与服务器同步

SQL Compact Edition - 不允许访问数据库文件