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