c# - ASP.NET MVC5 不会创建 MySQL 数据库,除非在初始化程序处中断

标签 c# mysql asp.net-mvc

我是 ASP.NET MVC5 的初学者。使用以下教程: http://www.ryadel.com/en/asp-net-setup-mvc5-website-mysql-entity-framework-6-code-first-vs2013/

我使用以下代码:

    [DbConfigurationType(typeof(MySql.Data.Entity.MySqlEFConfiguration))]
    public class MyDBContext : DbContext
    {
        public MyDBContext()
            : base("MyDBContextConnectionString")
        {
            Database.SetInitializer<MyDBContext>(new MyDBInitializer());
        }

            public DbSet<User> Users{get;set;}
            public DbSet<History> Histories{get;set;}
            public DbSet<Place> Places{get;set;}
            public DbSet<Review> Reviews{get;set;}
            public DbSet<Type> Types{get;set;}

        protected override void OnModelCreating(DbModelBuilder modelBuilder)
        {
            modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
        }

web.config:

<entityFramework>
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework"/>
    <providers>
      <provider invariantName="MySql.Data.MySqlClient"
      type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.Entity.EF6"/>
    </providers>
  </entityFramework>

<connectionStrings>
<add name="MyDBContextConnectionString" providerName="MySql.Data.MySqlClient" connectionString="server=localhost;UserId=root;Password=******;database=KorulottemDB;CharSet=utf8;Persist Security Info=True" />
</connectionStrings>
<system.data>
    <DbProviderFactories>
      <remove name="MySQL Data Provider" invariant="MySql.Data.MySqlClient" />
      <add name="MySQL Data Provider" invariant="MySql.Data.MySqlClient" description=".Net Framework Data Provider for MySQL" type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=6.8.3.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />
    </DbProviderFactories>

不幸的是,除非我在初始化器处中断,否则不会创建数据库:

Database.SetInitializer<MyDBContext>(new MyDBInitializer());    

然后单击“函数评估需要所有线程运行”。

enter image description here

在这种情况下,数据库出现在服务器上,但没有表。

感谢您的帮助。

最佳答案

由于您使用的是 Code First 方法,我建议您使用 Migrations也。要启用此功能,您可以在程序包管理器控制台中运行以下命令:

Enable-Migration -ProjectName <YourDataLayer>

您应该尝试在 Visual Studio 中使用包管理器控制台,并运行以下命令:

Update-Database -ProjectName <YourDataLayer>

关于c# - ASP.NET MVC5 不会创建 MySQL 数据库,除非在初始化程序处中断,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34786758/

相关文章:

c# - 如何在azure webjob应用程序中读取azure sql db?

c# - 在 C# 中使用通知的生产者和消费者

c# - Xamarin 表单 - 切换条目 View 的 IsPassword 时出错(仅在 uwp 上)

php - 绑定(bind)后如何以字符串形式检索 MySql 语句?

mysql - mysql中的第二个自动增量

c# - 如何解决错误 "Type provided must be an Enum. Parameter name: enumType"

asp.net - 使用新添加的数据库 ID 填充 View 模型

java - 使用选择排序方法对二维数组进行排序并将结果写入文件

c# - 如何处理 session 中的对象数组

MySQL连接两个表并对它们进行限制和排序