如何在EF 5.0中禁用自动表创建?

Hry*_*rii 15 entity-framework-5

我在我的项目中为Framework 4.0安装了Entity Framework 5.0 RC.但是当我尝试从Views中获取数据时,我得到了错误.EF尝试为此实体创建表.

Lad*_*nka 24

在应用程序启动时使用此选项可关闭数据库初始化和迁移:

Database.SetInitializer<YourContextType>(null);
Run Code Online (Sandbox Code Playgroud)


Adr*_*eer 10

如果要完全关闭数据库初始化/迁移,无论您在哪个项目中使用Context,都可以向上下文添加静态构造函数以调用初始化程序.这可确保在首次构建/使用上下文之前调用SetInitializer.

public class YourContext : DbContext
{
    static YourContext()
    {
        // don't let EF modify the database schema...
        Database.SetInitializer<YourContext >(null);
    }

    public YourContext() : base("name=YourContext")
    {}
    ...
}
Run Code Online (Sandbox Code Playgroud)

但是,如果您只想在少数几个项目中执行此操作,则最好通过应用程序启动明确地执行此操作 - 例如在正常的IoC设置期间,如Ladislav建议的那样.