正在移植到.NET核心的我的应用程序将使用带有SQLite的新EF核心。我想在应用第一次运行时自动创建数据库和表结构。按照EF核心文档,这是使用手动命令完成在实体框架核心中自动创建数据库
dotnet ef migrations add MyFirstMigration
dotnet ef database update
但是我不希望最终用户输入这些命令,并希望有应用程序创建和设置第一次使用的数据库。对于EF 6,功能类似于
Database.SetInitializer(new CreateDatabaseIfNotExists<MyContext>());
但是在EF内核中,这些似乎并不存在。我无法找到任何与EF内核相同的示例或文档,并且在EF内核文档的缺失功能列表中未提及。我已经设置了模型类,因此我可以根据模型编写一些代码来初始化数据库,但如果框架自动执行此操作,会更容易。我不想自动构建模型或迁移,只需在新数据库上创建表结构。
我在这里丢失了什么,或者在EF内核中缺少自动创建表格功能?
我依然很漂亮EF是新的,我使用当前数据库文件创建了使用EF 6代码首先“从数据库创建”从Visual Studio中定义数据结构的类。然后,我将这些内容剪切/粘贴到新的dotnet内核VS解决方案中 - 所以我想这些都不是迁移。这是否意味着我必须在上面的代码可以使用之前创建一个迁移文件? – deandob
我真的很抱歉,我没有在我的答案错误,如果你不使用迁移,可以使用命令context.Database.EnsureCreated()/ EnsureDeleted(),在https://blogs.msdn.microsoft更多细节。 com/dotnet/2016/09/29/Implement-seeding-custom-conventions-and-interceptors-in-ef-core-1-0/ –
是的,很有帮助,谢谢。 – deandob