问题描述
各位老大。我最近写了一个基于EF的Web系统,正在写自动安装和卸载部分的代码。在卸载程序中,我需要还原数据库(也就是将数据库中已安装的数据表等全部删除,还原到安装前的状态)。由于数据库中可能还有其他的数据表(比如一个数据库可能安装有多套WEB系统等),因此不能简单以删除数据库的方式来做。我看DbMigrator类没有卸载类的方法。请问如何做?谢谢!!1
解决方案
解决方案二:
能不能自己写一个sql脚本,卸载时调用这个脚本,删除ef的相关表?
解决方案三:
引用1楼hanjun0612的回复:
能不能自己写一个sql脚本,卸载时调用这个脚本,删除ef的相关表?
我用的codefirst方式编程,没写SQL教本。如果要写SQL教本的话,每次模型变化后,我都得更新卸载SQL教本,肯定会很麻烦。我想得是EF有没有什么我不知道的方法,可以直接调用来还原数据库,谢谢。
解决方案四:
哦哦,也有道理。不过我也不知道有没有还原数据库的方法。
解决方案五:
各位老大,来指点一下迷津晒。
解决方案六:
直接的方法,没用过,去微软网站好好看看我觉得既然是自己写安装、卸载程序,安装的时候就要记下装进去的东西(如写到一个数据库的表Table),包括文件、数据库表、注册表值等,卸载的时候访问Table,删去。我估计你是MVC+EF的,其实建立EF后,会在web.config里有了一个连接名,你可以根据这个连接名建立sqlconnection,自己写sql语句,在controller里执行,完全可以删除drop你安装的表
解决方案七:
引用5楼From_TaiWan的回复:
直接的方法,没用过,去微软网站好好看看我觉得既然是自己写安装、卸载程序,安装的时候就要记下装进去的东西(如写到一个数据库的表Table),包括文件、数据库表、注册表值等,卸载的时候访问Table,删去。我估计你是MVC+EF的,其实建立EF后,会在web.config里有了一个连接名,你可以根据这个连接名建立sqlconnection,自己写sql语句,在controller里执行,完全可以删除drop你安装的表
关键表有可能还有外键,对于有外键的数据表,直接drop会报错的,有没有谁做过类似的?谢谢、
时间: 2024-11-08 19:34:49