在Visual Studio中调试C#时,是否可以提交对实际数据库的更改?

我正在使用使用SQLExpress数据库的Visual Studio创建一个C#应用程序。 当我点击f5来调试应用程序并对数据库进行更改时,我相信正在发生的事情是bin / debug文件夹中有一个数据库的副本正在进行更改。

但是,当我停止调试然后在下一次将数据库的新副本放入bin / debug文件夹时点击f5,以便上次所做的所有更改都消失了。

我的问题是:

有没有办法,当我调试应用程序时,我可以让它对实际数据库进行更改,这些更改实际上已保存,或者它只会更改bin / debug文件夹中的副本(如果这是实际发生的事情) )?

我已经看到了类似的问题,但我找不到一个答案,说明是否可以在实际的.mdf文件中使这些更改持久化。

我问的原因是因为当我构建这个应用程序时,我不断添加部分和测试以确保它们一起工作。 当我输入测试数据时,我使用的是我希望保留在数据库中的实际数据。 这只会帮助我以后不必重新输入数据。

提前感谢任何可以帮助我更好地理解该过程的帮助或信息。

在解决方案资源管理器中选择数据库,然后将“复制到输出目录”更改为“如果更新则复制”。 稍后,当您最终获得最终版本时,请将调试文件夹中的数据库复制粘贴到源文件夹

“如果更新则复制”的问题是,当您对数据库结构的任何部分进行更改时,该更改将是Project目录中的版本,而不是您在Debug目录中构建的版本。

此外,当您尝试非调试运行时,您没有使用您在调试位置中查找的副本。

我通常使用Postgresql,但由于这是一台新计算机而且我发现MS做了这个Lite版本,所以决定尝试一下。 我有很多数据,这是我想要在表中的历史,然后一些手动操作与一点SQL,然后我可以继续创建数据库的实际function。

你不能只是将修改后的版本复制到项目目录中,因为有一个日志文件,似乎没有人知道那里有什么,但微软迫切需要以某种方式匹配你的数据库文件。 (我猜你已经尝试过了)。

每次我跑步时我都不想从头开始,就像你一样,我找不到任何解决方案。 因此,我绝望地将Debug中的版本复制到tmp目录中。 然后删除项目解决方案资源管理器中的版本。

然后我将tmp中的版本拖放到解决方案资源管理器中。 (除非如下所述,否则其中的所有内容在结构上与原始内容相同)

这样做,它重新创建了日志文件。 现在我的调试会话以一个就绪加载的数据开始。

警告的话。 1)更改数据库结构。 在您的解决方案资源管理器中,Linq to SQL DBML文件,如果您已在代码中更改了数据库的某些结构部分(我倾向于这样做),请右键单击DBML文件并进入设计视图。 然后将您添加的任何新表或视图拖入设计。

2)因为必须在数据库中删除和拖动感觉有点狡猾,所以在调试模式下复制数据库文件时,自己写一个在Form_Open上运行的函数。

\ MyDatabaseBackup \ myDatabase_date_time.mdb

请记住,如果您确实在任何时候返回到以前的版本,则需要将其重命名为myDatabase.mdb

将数据库复制到一些适当的位置并将配置文件中的连接字符串更改为仅指向,这只是一个建议,因为不知道什么类型的应用程序。 它是。