如何在 C# 中连接到 .sdf 本地数据库文件
How do I connect to a .sdf local database file in C#
我正在使用本地 SQL 服务器 CE 数据库文件 (.sdf
) 和 Entity Framework 来完成我的任务。
我已经创建了我的模型,现在 entity framework 应该将它们映射到本地数据库。
我的 Main
方法中有这段代码,该代码将一些数据插入数据库(以检查):
var db = new Context()
var blog = new Blog { Name = 'FirstBlog'};
db.Blogs.Add(blog);
db.SaveChanges();
这是我的连接字符串:
<connectionStrings>
<add name="Connection"
connectionString="Data source=|DataDirectory|\LocalDB.sdf""
providerName="System.Data.EntityClient" />
</connectionStrings>
当我 运行 这个时,我得到这个错误:
Format of the initialization string does not conform to specification starting at index 0.
我尝试了几个连接字符串,但 none 成功了。
我该如何解决这个问题?
更新:
按照建议,我将连接字符串更改为:
<connectionStrings>
<add name="Connection"
connectionString="provider=System.Data.SqlServerCe.4.0;provider connection string="Data source=|DataDirectory|\LocalDB.sdf""
providerName="System.Data.EntityClient" />
</connectionStrings>
但这给了我以下错误:
Some required information is missing from the connection string. The 'metadata' keyword is always required.
您的连接字符串中缺少 Server=(localdb)\v11.0
以指示它是 LocalDB 连接。
除此之外,您的连接字符串中还有 "
应该删除。
有关您的连接字符串的完整详细信息,请参见此 MSDN 页面。
可以找到连接字符串的示例 here(向下滚动到
我认为这是一个 Sql 服务器压缩文件,因此您的提供者需要是 System.Data.SqlServerCe 个提供者之一。
首先安装这个 EntityFramework.SqlServerCompact nuget 包,然后像这样设置你的连接字符串:
<connectionStrings>
<add name="connection" connectionString="Data Source=|DataDirectory|\TestDb.sdf"
providerName="System.Data.SqlServerCe.4.0" />
</connectionStrings>
**注意:**默认情况下 entity framework 将创建 TestDb.sdf 如果它不存在于
您解决方案 \bin\Debug
目录,部署后它将位于 C:\Users\YourUserName\AppData\Roaming
这个目录
<connectionStrings>
<add name="MyCS" connectionString="Data Source=|DataDirectory|\Database1.sdf"
providerName="System.Data.SqlServerCe.4.0" />
</connectionStrings>
我正在使用本地 SQL 服务器 CE 数据库文件 (.sdf
) 和 Entity Framework 来完成我的任务。
我已经创建了我的模型,现在 entity framework 应该将它们映射到本地数据库。
我的 Main
方法中有这段代码,该代码将一些数据插入数据库(以检查):
var db = new Context()
var blog = new Blog { Name = 'FirstBlog'};
db.Blogs.Add(blog);
db.SaveChanges();
这是我的连接字符串:
<connectionStrings>
<add name="Connection"
connectionString="Data source=|DataDirectory|\LocalDB.sdf""
providerName="System.Data.EntityClient" />
</connectionStrings>
当我 运行 这个时,我得到这个错误:
Format of the initialization string does not conform to specification starting at index 0.
我尝试了几个连接字符串,但 none 成功了。
我该如何解决这个问题?
更新:
按照建议,我将连接字符串更改为:
<connectionStrings>
<add name="Connection"
connectionString="provider=System.Data.SqlServerCe.4.0;provider connection string="Data source=|DataDirectory|\LocalDB.sdf""
providerName="System.Data.EntityClient" />
</connectionStrings>
但这给了我以下错误:
Some required information is missing from the connection string. The 'metadata' keyword is always required.
您的连接字符串中缺少 Server=(localdb)\v11.0
以指示它是 LocalDB 连接。
除此之外,您的连接字符串中还有 "
应该删除。
有关您的连接字符串的完整详细信息,请参见此 MSDN 页面。
可以找到连接字符串的示例 here(向下滚动到
我认为这是一个 Sql 服务器压缩文件,因此您的提供者需要是 System.Data.SqlServerCe 个提供者之一。
首先安装这个 EntityFramework.SqlServerCompact nuget 包,然后像这样设置你的连接字符串:
<connectionStrings>
<add name="connection" connectionString="Data Source=|DataDirectory|\TestDb.sdf"
providerName="System.Data.SqlServerCe.4.0" />
</connectionStrings>
**注意:**默认情况下 entity framework 将创建 TestDb.sdf 如果它不存在于
您解决方案 \bin\Debug
目录,部署后它将位于 C:\Users\YourUserName\AppData\Roaming
这个目录
<connectionStrings>
<add name="MyCS" connectionString="Data Source=|DataDirectory|\Database1.sdf"
providerName="System.Data.SqlServerCe.4.0" />
</connectionStrings>