目前我正在开展一个项目,该项目需要向后兼容(非EF)数据库,但也希望从模型创建一个新的数据库。
对于此任务,我将当前架构保存在某处(以XML格式)并使用原始sql更新步骤更新数据库,直到它们与架构匹配,这样可以正常工作。
此外,modelBuilder与模式匹配(因为,我的算法在context.Database.Create()和我保存的模式之间找不到新创建的数据库之间的区别)当前。
由于架构很可能在开发的后期阶段发生变化,因此我必须支持两种方式来创建最新的数据库,并且想知道我是否可以将这两者结合起来 - 因为现在我必须更新保存的目标模式,创建更新步骤并更新我的模型构建器,以便创建我需要的数据库 - 这将是一项相当繁琐的任务。
因为可能没有办法将我的模式“转换”为modelBuilder条目,并且因为我的POCO类中有更多未映射的信息(禁止更新正确的数据库并首先更新我的类数据库) (对我来说可见)方式是以某种方式收集上下文在我调用Database.Create()时创建的CREATE TABLE语句,我可以使用它来更新我的模式和更新步骤。
我知道我可以通过在调用Create()方法时记录上下文来做同样的事情但是 - 这将花费相当长的时间,会发出一些我不需要的查询,并将创建一个转储数据库,我必须每次我更新我的模型后摆脱。
所以我想知道是否有办法检查模型构建器(当然还有上下文),并以某种方式查看表格所映射的内容。