l--*_*''' 4 .net c# entity-framework visual-studio-2015
我正在使用实体框架,并在我的上下文中继承自DbContext.
public class MyContext : DbContext, IMyContext
{
static MyContext()
{
Database.SetInitializer<MyContext>(null);
}
//other stuff
}
Run Code Online (Sandbox Code Playgroud)
这条线的目的是什么?
Database.SetInitializer<ArContext>(null)
Run Code Online (Sandbox Code Playgroud)
Sam*_*ath 14
您可以关闭应用程序的数据库初始化程序.在您不想丢失现有数据的生产环境中.在这种情况下,您可以关闭初始化程序,如下所示.
public MyContext()
{
Database.SetInitializer<MyContext>(null);//Disable initializer
}
Run Code Online (Sandbox Code Playgroud)
有四种不同的数据库初始化策略:
- CreateDatabaseIfNotExists:这是默认的初始化程序.顾名思义,如果根据配置不存在,它将创建数据库.但是,如果更改模型类,然后使用此初始化程序运行应用程序,则会引发异常.
- DropCreateDatabaseIfModelChanges:如果您的模型类(实体类)已更改,则此初始化程序将删除现有数据库并创建新数据库.因此,当模型类发生更改时,您不必担心维护数据库模式.
- DropCreateDatabaseAlways:顾名思义,无论您的模型类是否已更改,此初始化程序每次运行应用程序时都会删除现有数据库.当您在每次运行应用程序时需要新数据库时,这将非常有用,就像您在开发应用程序时一样.
- 自定义数据库初始化程序:您还可以创建自己的自定义初始化程序,如果上述任何一项不满足您的要求,或者您想要使用上述初始化程序执行其他初始化数据库的过程.
参考:数据库初始化策略
| 归档时间: |
|
| 查看次数: |
6949 次 |
| 最近记录: |