C# 实体框架连接字符串:SQLCe文件位置

C# 实体框架连接字符串:SQLCe文件位置,c#,entity-framework,C#,Entity Framework,我在我的app.config中指定了以下条目 <add name="DefaultStoreConnection" providerName="System.Data.SqlServerCe.4.0" connectionString="Data Source=DefaultStore.sdf" /> 但是,当我使用Package Manager控制台创建迁移时,它会在那里创建数据库: C:\Program Files (x86)\Microsoft Visual Studio 1

我在我的app.config中指定了以下条目

<add name="DefaultStoreConnection" providerName="System.Data.SqlServerCe.4.0" connectionString="Data Source=DefaultStore.sdf" />
但是,当我使用Package Manager控制台创建迁移时,它会在那里创建数据库:

C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\DefaultStore.sdf
文件名是正确的,所以我猜实体框架只是从调用应用程序获取一个相对路径,在包管理器控制台的情况下:VisualStudio。我可以在app.config中指定我的应用程序目录吗?

试试这个:

按如下方式设置连接:

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

在这里的
环境.SpecialFolder
enum中,您还可以选择执行目录,还可以提供自定义目录

它是winforms项目吗?“app.config”位于控制台项目中,外部库中的数据库上下文您是否尝试过
Data source=| DataDirectory | DefaulstStore.sdf
<add name="DefaultStoreConnection" providerName="System.Data.SqlServerCe.4.0" 
     connectionString="Data Source=|DataDirectory|\DefaultStore.sdf" />
string fileName = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);
AppDomain.CurrentDomain.SetData("DataDirectory", fileName);