2014-02-25 97 views
0

我指定了以下项在我的app.config实体框架的连接字符串:SQLCE文件位置

<add name="DefaultStoreConnection" providerName="System.Data.SqlServerCe.4.0" connectionString="Data Source=DefaultStore.sdf" /> 

每当我开始我的程序和访问数据库,该数据库被创建在以下位置

MyAppDir/DefaultStore.sdf 

然而,当我为了创建与迁移程序包管理器控制台的工作,它会创建有数据库:

C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\DefaultStore.sdf 

文件名称是正确的,所以我猜实体框架只是从调用应用程序获取相对路径,如果是包管理器控制台:Visual Studio。我可以在app.config中指定我的应用程序目录吗?

+0

它是一个winforms项目? –

+0

“app.config”位于控制台项目中,外部库中的数据库上下文 – Acrotygma

+0

您是否尝试过'Data source = | DataDirectory | DefaulstStore.sdf;'? – Marco

回答

2

试试这个:

设置您的连接是这样的:

<add name="DefaultStoreConnection" providerName="System.Data.SqlServerCe.4.0" 
    connectionString="Data Source=|DataDirectory|\DefaultStore.sdf" /> 

现在你可以定义|DataDirectory|这样的意思你main函数中(Program.cs中的),请确保它之前的任何执行一种数据库交互的:

string fileName = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData); 
AppDomain.CurrentDomain.SetData("DataDirectory", fileName); 

在这里Environment.SpecialFolder枚举,你可以选择执行d irectory以及,你也可以提供你的自定义目录。

相关问题