我正在学习EF Code First。我已阅读Database Initialization Strategies in Code-First和Understanding Database Initializers in Entity Framework Code First篇文章。
但我仍然感到困惑,初始化之前应该在哪里?这些文章没有提到这一点,我认为这非常重要。
我正在构建一个足球应用程序,因此在初始化应用程序时,我想将每个团队和玩家名称插入到数据库中(欧洲各地最好的联盟 - 所以非常多的数据)。他们不会改变。它们应该在源代码中进行硬编码吗?或附加在xml?简单的文件?
现在我有:在运行之前,有初始化提示(请稍候,初始化...)我读取文件,逐行将它们插入数据库。这是好方法吗?
答案 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/