仓库中Database.SetInitializer(null)的用途是什么?我正在使用实体框架,并且在我的上下文中继承自DbContext。公共类MyContext:DbContext,IMyContext{staticMyContext(){Database.SetInitializer(null);}//otherstuff}这一行的目的是什么?Database.SetInitializer(null)您可以关闭应用程序的数据库初始化程序。在您不想丢失现有数据的生产环境中。在这种情况下,您可以关闭初始化程序,如下所示。publicMyContext(){Database.SetInitializer(null);//禁用初始化器}有四种不同的数据库初始化策略:CreateDatabaseIfNotExists:这是默认的初始化器。顾名思义,如果数据库不存在,它会根据配置创建。但是,如果我更改模型类,然后使用此初始化程序运行应用程序,则会抛出异常。DropCreateDatabaseIfModelChanges:如果你的模型类(实体类)已经改变,这个初始化器将删除现有的数据库并创建一个新的。因此,您不必担心在模型类更改时维护数据库模式。DropCreateDatabaseAlways:顾名思义,无论您的模型类是否已更改,此初始化程序都会在您每次运行应用程序时删除现有数据库。当您每次运行应用程序都需要一个新数据库时,这很有用,就像您在开发应用程序时一样。CustomDatabaseInitializer:如果以上任何一个不满足您的要求,或者如果您想使用上述初始化程序执行其他初始化数据库的过程,您也可以创建自己的自定义初始化程序。参考:数据库初始化策略EntityFrameworkCodeFirst中的默认数据库初始化程序是CreateDatabaseIfNotExists。顾名思义,如果数据库不存在,它将创建它。这种行为在开发过程中很好,但是当你进入生产环境时,你可能不想自动创建数据库。如果您想禁用初始化程序,请使用显示的行,现在您可以完全控制数据库的创建和演变方式。其他初始化器:DropCreateDatabaseIfModelChanges。DropCreateDatabaseAlwaysCustomDBInitializer查看更多信息。以上就是C#学习教程:版本库中Database.SetInitializer(null)的作用是什么?如果所有分享的内容对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
