15

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

4

2 回答 2

26

在应用程序启动时使用它来关闭数据库初始化和迁移:

Database.SetInitializer<YourContextType>(null);
于 2012-05-24T08:48:14.220 回答
11

如果您想完全关闭数据库初始化/迁移,无论您在哪个项目中使用您的 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")
    {}
    ...
}

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

于 2013-07-30T22:06:34.437 回答