解决Entity Framework(EF) 使用时,数据库结构对应,但EF还是提示要删除数据库的问题
来源:互联网 发布:js判断法定节假日 编辑:程序博客网 时间:2024/05/29 10:38
.Net平台使用Entity Framework的Code First模式做开发非常方便,开发人员不用再操心数据库的琐碎细节了。
但在使用过程中遇到一个困惑,当数据结构发生变更时,EF的机制下会自动删除并重新生成空的数据库,这种做法在我们的项目的测试数据比较多的时候,频繁需要对数据库进行初始化是一件很累很烦的事情,所以我们想了个变通的方法:
当程序的相关类的结构发生变动时,把连接字符串的数据库名改成一个新名字,在Debug下运行程序,跑出一个空的数据库,然后使用数据库对比工具Datanamic SchemaDiff将最新库的结构同步到原来的数据库,这样原来数据库的测试数据就能保留下来,避免重复初始化.
但有时候却发生一个很恼火的情况,就是数据库的结构已经被同步到最新,理论上已经不需要重新生成数据库了,但EF却仍然报"你的数据库从创建后已经发生了更改,需要删除数据库***,但数据库正在使用无法删除".
我用数据库对比工具反复对比了两个数据库,结构是完全一致的,就推断EF肯定在程序那边或者数据库这边安放了标识,来标识数据库的变动.在网上找了些资料,果然如此,数据库里EF添加了一张附加的表EdmMetadata,里面只有一条哈希值记录,于是把新库的那条记录的哈希值替换掉旧库的值,一运行,Ok~
- 解决Entity Framework(EF) 使用时,数据库结构对应,但EF还是提示要删除数据库的问题
- ASP.NET MVC+Entity Framework 4.1访问数据库 (EF)
- entity framework(EF) 直接执行数据库命令并返回DataTable
- EF | Entity framework
- 【Entity Framework】EF初识
- EF 数据库初始化 Database.SetInitializer Entity Framework数据库初始化四种策略
- Linq与EF(Entity Framework)
- ADO.NET Entity Framework(EF)
- EF-DataFirst切换数据库问题
- 让EF飞一会儿:如何用Entity Framework 6 连接Sqlite数据库
- entity framework(EF) 直接执行数据库命令并返回DataTable 参数化sql语句
- Entity Framework(EF) 直接执行数据库命令并返回 DataTable 数据参数化 SQL 语句
- 让EF飞一会儿:如何用Entity Framework 6 连接Sqlite数据库
- 解决EF CTP5 数据库表名变为复数问题
- 学习:EF(Entity Framwork)结构
- 学习:EF(Entity Framwork)结构
- Entity Framework Code First使用者的福音 --- EF Power Tool使用记之一
- 使用EF框架实现MVC的增删改查功能!!!Entity Framework
- C#: how do I list all System defined Exceptions and pick up what I need
- C# 个别类型转换
- android手机root后的安全问题 (四)
- Linux命令之ssh - Secure Shell 客户端
- Windows 2003 远程桌面超时 自动断开 自动注销
- 解决Entity Framework(EF) 使用时,数据库结构对应,但EF还是提示要删除数据库的问题
- VirtualBox里面 Ubuntu9.10 USB转串口设置
- cocos2d-x Touch触屏事件
- Oracle-Lock Query
- 汇率生成BAPI
- 开启FMS服务器的debug功能
- 统计推断(第五章)
- Oracle-rman脚本
- 读 Beginning Android Games 2nd Edition (三) 创建速度感应器事件监听类