尽管需要Sql CE,实体框架似乎仍希望使用Sql Server Provider

本文关键字:Sql 希望 Server Provider 框架 CE 实体 | 更新日期: 2023-09-27 18:25:17

我使用的是带有Entity Framework 6代码优先数据模型的SqlCe 4数据库。

我在DbContext构造函数中设置了连接字符串,如下所示:

private static readonly string DATABASE_PASSWORD = "...";
private static readonly string CONNECTION_STRING = string.Format(@"Data Source={0};Password={1}", MyProject.Properties.Settings.Default.DatabaseLocation, DATABASE_PASSWORD);
public DataModel()
    : base(CONNECTION_STRING)
{
}

当我运行使用这个模型的应用程序时,它就工作了。

然而,在Visual Studio的设计器中,当我试图查看在view模型构造函数中加载一组记录的WPF控件时,它一次会冻结大约30秒,并收到如下错误消息:

Error   2   Unable to complete operation. The supplied SqlConnection does not specify an initial catalog or AttachDBFileName.

我没有使用SqlServer,我使用的是Sql Server Compact,所以应该没有必要考虑使用Sql Server。

有人能看到我的连接字符串有什么问题吗?

尽管需要Sql CE,实体框架似乎仍希望使用Sql Server Provider

查看错误消息(...The supplied SqlConnection..)我得出结论,您正在设置SQlConection而不是SQlCeConnection

确保您将SQL对象设置为:

 conn = new SqlCeConnection(CONNECTION_STRING);
 conn.Open();
 SqlCeCommand cmd = conn.CreateCommand();
 cmd.CommandText = "..."

并确保已添加对SQL Server Compact providerSystem.Data.SqlServerCe.dll 的引用