2014-10-02 46 views
-3

我正在使用实体框架6代码第一个数据模型的SqlCe 4数据库。实体框架似乎想要使用SQL Server提供程序,尽管需要Sql CE

我设置连接字符串中的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中的设计器中,当我尝试查看WPF控件在View模型构造函数中加载一组记录并且出现如下错误消息时,它保持约30秒的冻结时间:

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

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

任何人都可以看到我的连接字符串有什么问题吗?

+3

([你知道紧凑是不赞同,对吧?](http://stackoverflow.com/questions/20363374/is-sql-server-compact-discontinued-from-visual-st udio-2013/20364011#20364011)) – 2014-10-02 13:05:13

+0

不推荐使用或者不会比Access更好 – 2014-10-02 13:05:55

+1

我什么时候才说Access是一个可行的替代品,别提你唯一的选择?你点击[链接](http://stackoverflow.com/questions/20363374/is-sql-server-compact-discontinued-from-visual-studio-2013/20364011#20364011)?您可以使用Express,LocalDB,SQLite,... – 2014-10-02 13:07:51

回答

2

查看错误信息(...The supplied SqlConnection..)我的结论是要设置一个SQlConection,而不是SQlCeConnection

请务必将您的SQL对象,如:

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

并确保您添加了一个参考到SQL Server Compact provider,System.Data.SqlServerCe.dll

+0

+1我认为这是问题所在。有趣的是,代码的更重要的细节被排除在原始问题之外。另外我想知道最新版本的Visual Studio甚至提供了CE作为选项 - 也许为什么OP没有提及提供者。 – 2014-10-02 13:26:52

相关问题