【问题标题】:DbContext trying to create tablesDbContext 试图创建表
【发布时间】:2012-11-04 21:37:48
【问题描述】:

我有一个自定义的 DbContext 类。 我在系统中有现有的表。 我已经建立了一个基于 POCO 的系统。

当我尝试在 DbSet 中查询表时,它会尝试创建表。 现在表已经存在于数据库中,sql server 会抛出异常。

如何禁止通过 EF 创建表?

【问题讨论】:

    标签: c# frameworks entity


    【解决方案1】:

    当应用程序启动时(例如global.asax.csApplication_Start() 方法)指示您要用于创建数据库的策略:

     Database.SetInitializer(new DropCreateDatabaseIfModelChanges<YourContext>());
    

    Database 位于 System.Data.Entity 命名空间中。

    如果使用new DropCreateDatabaseIfModelChanges&lt;YourContext&gt;(),它将删除数据库并尝试创建数据库架构和 POCO 之间的更改。

    【讨论】:

    • 我不想删除数据库并重新创建。我只是不希望 EF 尝试创建数据库和表。
    【解决方案2】:

    把它放在你的 DbContext 实现中:

    // static constructor
    static MyDbContext()
    {
        Database.SetInitializer<MyDbContext>(null);
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-06-16
      • 1970-01-01
      • 1970-01-01
      • 2012-03-25
      • 2012-09-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多