如何在创建数据库时首先在实体框架代码中填充数据?
我正在使用代码优先实体框架,我想知道如何在创建数据库时运行一些代码,以便我可以用一些数据填充我的数据库。 (请注意,我要求创建数据库,而不是每次应用程序启动时)。
有谁知道我是否可以使用某种方法或事件来实现此目的?
I'm using code first entity framework and I would like to know how to run some code when the database is being created so that I can populate my database with some data. (note that I'm asking for on database creation, not everytime the application starts).
Does anybody know if there's a method or event I can use for this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我想补充拉迪斯拉夫的答案。他指出的文章展示了如何创建初始化程序,但没有展示如何使用初始化程序来填充新创建的数据库。 DbInitializer 有一个名为 Seed 的方法,您可以覆盖该方法。您可以在本文中查看如何使用此功能的示例(如果您愿意,也可以在同一页面上查看视频)http://msdn.microsoft.com/en-us/data/hh272552
I'd like to add to Ladislav's answer. The article he pointed to shows how to create an initializer but does not show how to use an initializer to populate a newly created database. DbInitializer has a method called Seed that you can overwrite. You can see an example of how to use this in this article (or video if you prefer, which is on the same page) http://msdn.microsoft.com/en-us/data/hh272552
您可以使用自定义数据库初始值设定项 - 这意味着实现
IDatabaseInitializer
并通过调用Database.SetInitializer
注册此初始值设定项。You can use custom database initializer - it means implementing
IDatabaseInitializer
and registering this initializer by callingDatabase.SetInitializer
.