Tag: datadirectory

如何在控制台应用程序中为ConnectionString定义DataDirectory以使用EntityFramework Code First Migrations

我尝试在App.config为数据库设置位置MyProject\App_Data\Cos.mdf : 在Program.cs我写道: static void Main(string[] args) { string relative = @”..\..\App_Data\Cos.mdf”; string absolute = Path.GetFullPath(relative); AppDomain.CurrentDomain.SetData(“DataDirectory”, absolute); Console.WriteLine(absolute); Console.ReadKey(); } 显示的路径是(我粘贴它表明我没有犯错): 但是当我输入包管理器控制台enable-migrations将AutomaticMigrations更改为true,然后键入update-database我收到错误: Cannot attach the file ‘C:\Users\s8359_000\Documents\Visual Studio 2013\Projects\Projekt5 — kopia\Projekt5\bin\Debug\Cos.mdf’ as database ‘Cos’. 为什么.NET尝试在Debug目录中创建我的数据库?! 我在StackOverflow上讨论了这个主题的15个主题,看起来每个人都只是重复了不起作用的答案。 在SRUTZKY回答后编辑是的,你是对的,有错误。 你回答后我尝试了更多的组合,不幸的是没有一个工作。 和主要的 static void Main(string[] args) { Console.WriteLine(“BEFORE:” + AppDomain.CurrentDomain.GetData(“DataDirectory”)); string relative = @”..\..\App_Data\Cos.mdf”; string absolute = […]

如何读取| DataDirectory |的当前路径 从配置设置

我正在编写一个程序,要求用户在应用程序启动时选择活动数据库。 我有一个Windows窗体,它将列出存储在ApplicationData子文件夹中的数据库,专门用于存储数据库文件。 但是,当我创建一个新数据库时,我需要复制模板数据库,但无法确定默认情况下存储的位置。 我试过了: dpath = ConfigurationManager.AppSettings[“DataDirectory”]; 我似乎总是得到一个null值。 有一次我放弃了,并且认为我可以将DataDirectory设置为我选择的文件夹,但似乎我在执行程序时这样做太晚才能生效。 newdpath = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + “\\MyAppFolder”; 我很感激有关如何找到数据库位置的任何建议,或者我自己尽早设置它以影响程序操作。 编辑: 对于第二部分,我发现在尝试执行TableAdapter.Fill命令后,我尝试修改连接字符串,从而解释了为何打开默认数据库。 这个谜团已经解决了。 然而,第一部分仍然是一个未知数。 谢谢。