VS2022中C#项目本地.mdf数据库每次编译后数据丢失求助
解决Visual Studio 2022中本地.mdf数据库编译后数据清空的问题
- 找到项目中的.mdf数据库文件,右键点击选择属性
- 在属性窗口中,找到复制到输出目录选项,将默认的
始终复制修改为如果较新则复制或不复制:- 选择
如果较新则复制:仅当项目中的源.mdf文件比输出目录(如bin/Debug)里的数据库版本更新时,才会执行覆盖操作,既满足修改结构时同步更新的需求,又能保留调试时存入的数据 - 选择
不复制:完全禁止源文件向输出目录复制,输出目录内的数据库会持续保留数据,但修改数据库结构后,需要手动同步源文件与输出目录的数据库文件
- 选择
- 确认设置修改后重新编译项目,调试时数据库数据即可正常保留
问题根源
默认配置下,Visual Studio会将项目内的.mdf文件复制到输出目录,若设置为始终复制,每次编译都会覆盖输出目录中的数据库,导致数据丢失。此前仅修改结构时才清空数据,是因为结构修改会触发源文件更新,进而触发复制覆盖;当前出现每次编译都清空的情况,大概率是该配置被改为了始终复制。
安装版程序无此问题,是因为安装包使用的是输出目录中的数据库文件,不会在运行时重复从项目源文件复制覆盖。
内容的提问来源于stack exchange,提问作者Benjamin Freres
相关产品推荐
相关产品推荐

