我一直在现有数据库上使用 Entity Framework 4.3,并且我有几个我试图迎合的场景。
首先,如果我删除我的数据库,我希望 EF 从头开始重新创建 - 我已成功为此使用了 CreateDatabaseIfNotExists 数据库初始化程序。
其次,如果我更新我的模型并且数据库已经存在,我希望数据库能够自动更新——我已经成功地为此使用了 Entity Framework 4.3 Migrations。
所以这是我的问题。假设我向我的模型添加了一个新表,它需要一些参考数据,这是确保在数据库初始化程序运行和迁移运行时创建这些数据的最佳方法。我的愿望是,当我从头开始创建数据库以及由于迁移运行而更新数据库时,数据会被创建。
在一些 EF 迁移示例中,我看到人们在迁移的 UP 方法中使用 SQL() 函数来创建种子数据,但如果可能的话,我宁愿使用上下文来创建种子数据(如您在大多数数据库初始化程序示例中所见)因为当 EF 的整个想法将其抽象出来时,您会使用纯 sql,这对我来说似乎很奇怪。我尝试在 UP 方法中使用上下文,但由于某种原因,当我尝试将种子数据直接添加到创建表的调用下方时,它认为不存在迁移中创建的表。
任何智慧都非常感谢。