实体框架代码中的数据库初始化

时间:2016-04-27 17:09:42

标签: c# database entity-framework ef-code-first entity-framework-6

我正在学习EF Code First。我已阅读Database Initialization Strategies in Code-FirstUnderstanding Database Initializers in Entity Framework Code First篇文章。

但我仍然感到困惑,初始化之前应该在哪里?这些文章没有提到这一点,我认为这非常重要。

我正在构建一个足球应用程序,因此在初始化应用程序时,我想将每个团队和玩家名称插入到数据库中(欧洲各地最好的联盟 - 所以非常多的数据)。他们不会改变。它们应该在源代码中进行硬编码吗?或附加在xml?简单的文件?

现在我有:在运行之前,有初始化提示(请稍候,初始化...)我读取文件,逐行将它们插入数据库。这是好方法吗?

1 个答案:

答案 0 :(得分:2)

这取决于您在开发过程中的位置。您可以在创建数据库时运行的初始化程序上使用Seed() method。因此,如果您有大量数据并且经常使用DropCreate_____类型的初始化程序更改模型 - 我建议只播种少量数据进行测试。

如果您对初始设计感到满意,可以执行完整的Seed()并切换到数据库迁移以处理模型更改。这将保留您现有的数据,并为新数据提供自己的Seed()方法。

关于从何处获取数据,您可以查看类似的内容,您可以从Web服务获取或下载到csv,xml等等http://www.jokecamp.com/blog/guide-to-football-and-soccer-data-and-apis/#footballdata或此处http://openfootball.github.io/