0
在我的项目中,我使用实体框架6和代码优先的方法。我的目标是用所有必需的初始数据初始化数据库。基于我所做的研究,我决定实施IDatabaseInitializer。然而,有些我不明白,我很乐意得到一些解释。EF代码优先:初始化DB的正确方法是什么?
我想使用“dropcreatedatabaseifmodelchanges”策略。但是,一个初始化程序可以针对单个上下文进行工作。在我的项目中,我有几个上下文。所以,我决定创建几个初始化器,每个上下文一个。
但有一个问题:第一个初始化程序加载,删除数据库并添加其数据。之后,第二个初始化程序加载并删除数据库(以及来自前一个初始化程序的数据)......因此,我以仅加载最后一个初始化程序数据的DB结束。
显然,我的做法是错误的。在有多个数据库上下文的情况下,初始化数据库的正确方法是什么?
感谢
我可以理解,对于单个数据库有几种模型,但仅基于这些模型中的一种重新创建数据库就变得根本不可能。要么使用单一的统一模型,要么不让EF为你创建数据库,我不认为还有其他选择。 – hvd