表格没有使用EF 6.1的代码优先方法反映vs 2013上的数据库

时间:2013-12-10 11:56:34

标签: entity-framework c#-4.0 ef-migrations visual-studio-2013

我在VS2013的mvc项目中创建了模型类并使用了以下上下文并使用了EF 6.1

public class DataBase : DbContext
    {
     public class DataBase : DbContext
            {
                public DataBase()
                    : base("Db")
                {
                }

      public DbSet<table> table{ get; set; }
        }
    }
"Db" is my connection string everything ,everything run good but table are not created on my database

2 个答案:

答案 0 :(得分:0)

你试过这个吗?

public class DataBase : DbContext
{
 public class DataBase : DbContext
        {
            public DataBase()
                : base("Name=Db")
            {
            }

  public DbSet<table> table{ get; set; }
    }
}

:base()设为“Name = Db”。

答案 1 :(得分:0)

在ef 6中,他们改变了工作方式,因此您需要执行一些手动步骤才能生成数据库。我认为你有几个选择:
1。使用压缩管理器控制台并运行Update-DataBase命令。 (您必须弄清楚要使用哪些标志)这可能要求您在运行更新之前使用预期名称创建一个空白数据库。
2。将数据库初始化程序命令更改为:

Database.SetInitializer<UserDbContext>(new MigrateDatabaseToLatestVersion<UserDbContext, Configuration>());

这应该使您的代码始终更新/创建数据库。可能不是你想要的生产环境,但..
3。您可以创建自己的初始化程序,它还具有在创建时将数据播种到数据库的好处。看一下http://www.asp.net/mvc/tutorials/getting-started-with-ef-using-mvc/creating-an-entity-framework-data-model-for-an-asp-net-mvc-application&lt; - 在文章末尾有一个这样的初始化器的例子。章节标题为&#34;设置EF以使用测试数据&#34;

初始化数据库