繁体   English   中英

如何在C#中连接到.sdf本地数据库文件

[英]How do I connect to a .sdf local database file in C#

我正在使用本地SQL Server CE数据库文件( .sdf )和实体框架来完成我的任务。

我创建了我的模型,现在实体框架应该将它们映射到本地数据库。

我在我的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&quot;" 
        providerName="System.Data.EntityClient" />
</connectionStrings>

当我运行它时,我收到此错误:

初始化字符串的格式不符合从索引0开始的规范。

我已经尝试了几个连接字符串但没有工作。

我怎样才能解决这个问题?

更新:

建议我将连接字符串更改为:

<connectionStrings>
   <add name="Connection" 
        connectionString="provider=System.Data.SqlServerCe.4.0;provider connection string=&quot;Data source=|DataDirectory|\LocalDB.sdf&quot;" 
        providerName="System.Data.EntityClient" />
</connectionStrings>

但这给了我以下错误:

连接字符串中缺少一些必需的信息。 始终需要'metadata'关键字。

首先安装此EntityFramework.SqlServerCompact nuget包,然后将您的连接字符串设置为somting,如下所示:

<connectionStrings>
    <add name="connection" connectionString="Data Source=|DataDirectory|\TestDb.sdf"
      providerName="System.Data.SqlServerCe.4.0" />
  </connectionStrings>

**注意:**默认情况下,实体框架将创建TestDb.sdf,如果它在您的解决方案\\bin\\Debug目录中不存在,则在部署之后它将位于C:\\Users\\YourUserName\\AppData\\Roaming此目录中

您在连接字符串中缺少Server=(localdb)\\v11.0以指示它是LocalDB连接。 除此之外,你还可以&quot在连接字符串中应删除。

有关连接字符串应如何显示的详细信息,请参阅此MSDN页面。

可以在此处找到连接字符串的示例(向下滚动到

我认为这是一个Sql Server Compact文件,因此您的提供程序需要是System.Data.SqlServerCe提供程序之一。

<connectionStrings>
    <add name="MyCS" connectionString="Data Source=|DataDirectory|\Database1.sdf"
      providerName="System.Data.SqlServerCe.4.0" />
  </connectionStrings>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM