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