使用Entity Framework连接到SQL Server CE(.SDF文件)

时间:2016-10-29 18:55:53

标签: c# sql sql-server entity-framework sql-server-ce

我可以使用Entity Framework成功连接到.mdf文件。我的连接字符串如下:

connectionString="Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\FacilitySecurity.mdf;Integrated Security=False;Connect Timeout=30"

在我的计算机上,我可以连接并使用.mdf文件。但是当我在另一台计算机上运行我的应用程序时,出现了关于SQL Server服务的错误。我想我必须使用.sdf文件而不是.mdf文件。

但是如何使用Entity Framework连接到.sdf文件?哪个应用程序或服务必须安装在任何其他计算机上才能运行我的应用程序?

2 个答案:

答案 0 :(得分:1)

SQL Server(可能是指Express Edition)和使用.sdf文件的SQL Server CE是完全不同的产品,除了名称中的“SQL”字母之外没有任何共同之处。 SQL Server CE不是服务器应用程序,它只是一个用于嵌入的库。

要使用SQL Server CE,例如使用Entity Framework作为替代数据提供程序,您可以向项目添加适当的NuGet包并更改连接字符串(实际上在应用程序配置文件中添加数十行)。但要小心:SQL Server CE引擎的功能更加有限。

要在其他计算机上使用LocalDB,您需要安装SQL Server。

答案 1 :(得分:-1)

你可以试试,按照这个描述安装EntityFramework.SqlServerCompact包。

【从 NuGet 安装 Entity Framework 6】 要获得最新最好的 Entity Framework 6 位,请始终从 NuGet 安装。并且得益于 NuGet 惊人的包依赖解析功能,只需安装所需的单个包,其余包将作为依赖项安装。在这种情况下,EntityFramework.SqlServerCompact 包(依赖于 SQL Server Compact 4 和 EF6)中唯一缺少的是 app.config 文件中的 DbProvider 注册,它使您可以在没有安装 SQL Server Compact 运行时的情况下运行在 GAC 和 machine.config 中。为了解决这个“缺少链接”的问题,我创建了 EntityFramework.SqlServerCompact package,它只是添加了缺少的配置条目,进而依赖于所有其他必需的包。

换句话说,只需安装 EntityFramework.SqlServerCompact.PrivateConfig 包。右键单击项目中的 References 文件夹,然后选择管理 NuGet 包。搜索软件包名称并安装它。并且将安装所有必需的包和引用。 (我正在努力将这些配置条目添加到基础 EntityFramwork.SqlServerCompact 包中,以便使事情更加简化)