停止实体框架修改数据库

Jus*_*son 37 .net c# entity-framework entity-framework-4

我开始使用实体框架的代码优先方法,主要是为了让我可以使用注释来装饰我的属性以便在我的视图中显示(否则,现在我必须创建一个几乎与一个实体框架为我生成的,所以我可以添加注释,然后将数据从一个对象复制到下一个对象).

现在看起来当我启动我的应用程序时,它正在尝试创建一个数据库.

我不希望实体框架永远修改我的数据库.不,不是.甚至不尝试.修改数据库确实不难; 如果我自己这样做,我会感觉更舒服.在设计数据库时,我不需要一个框架来握住我的手.

我可以告诉框架停止尝试修改我的数据库吗?我现在非常犹豫是否使用代码优先,因为它试图修改我的数据库是相当可怕的.即使在开发过程中,我也不希望看到它发生.

我运气不好吗?

jru*_*ell 56

如果您不希望EF创建数据库,则可以禁用数据库初始化程序:

public class SchoolDBContext: DbContext 
{
    public SchoolDBContext() : base("SchoolDBConnectionString")
    {            
        //Disable initializer
        Database.SetInitializer<SchoolDBContext>(null);
    }
    public DbSet<Student> Students { get; set; }
    public DbSet<Standard> Standards { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

http://www.entityframeworktutorial.net/code-first/turn-off-database-initialization-in-code-first.aspx

  • 仍然无法相信它是你的数据库混乱的默认值.我不知道他们为什么不抛出异常来解释你必须做出的明确选择 (5认同)