Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 数据库错误的SetInitializer_Mysql_Asp.net_Vb.net_Entity Framework - Fatal编程技术网

Mysql 数据库错误的SetInitializer

Mysql 数据库错误的SetInitializer,mysql,asp.net,vb.net,entity-framework,Mysql,Asp.net,Vb.net,Entity Framework,我正在尝试转换ASP.Net帖子示例;ASP.NET标识:与EntityFramework MySQL提供程序(C#)一起使用MySQL存储 以下代码来自示例 public class ApplicationDbContext : IdentityDbContext<ApplicationUser> { static ApplicationDbContext() { Database.SetInitializer(new MySqlInitializer())

我正在尝试转换ASP.Net帖子示例;ASP.NET标识:与EntityFramework MySQL提供程序(C#)一起使用MySQL存储

以下代码来自示例

 public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
{
  static ApplicationDbContext()
  {
      Database.SetInitializer(new MySqlInitializer());
  }

  public ApplicationDbContext()
    : base("DefaultConnection")
  {
  }
}  
末级

初始化器类如下所示

Public Class MySqlInitializer
    Implements IDatabaseInitializer(Of ApplicationDbContext)

    Public Sub InitializeDatabase(context As ApplicationDbContext) Implements IDatabaseInitializer(Of ApplicationDbContext).InitializeDatabase
        If Not context.Database.Exists() Then               
            context.Database.Create()
        Else

            Dim migrationHistoryTableExists = DirectCast(context, IObjectContextAdapter).ObjectContext.ExecuteStoreQuery(Of Integer)(String.Format("SELECT COUNT(*) FROM information_schema.tables WHERE table_schema = '{0}' AND table_name = '__MigrationHistory'","connstring"))

            If migrationHistoryTableExists.FirstOrDefault() = 0 Then
                context.Database.Delete()
                context.Database.Create()
            End If
        End If
    End Sub
数据库中的代码出错。SetInitializer(New MySqlInitializer())代码行出现错误

错误31262在没有类的显式实例的情况下,无法从共享方法或共享成员初始值设定项中引用类的实例成员。C:\WebAppTemplate\AspNetIdentityTemplate\u MySql\AspNetIdentityTemplate\u MySql\Models\IdentityModels.vb 14 9 AspNetIdentityTemplate\u MySql

在数据库行中的数据库下有一个蓝色的波形。SetInitializer


我所有纠正的尝试都会导致相同或其他错误。感谢您的帮助。

该帖子的一个代码示例中包含错误

突出显示的行对应于该string.Format方法的参数,但是该参数应该是数据库架构名称,而不是连接字符串

如果您有一个名为users的数据库,那么您应该在此处指定
“users”

Public Class MySqlInitializer
    Implements IDatabaseInitializer(Of ApplicationDbContext)

    Public Sub InitializeDatabase(context As ApplicationDbContext) Implements IDatabaseInitializer(Of ApplicationDbContext).InitializeDatabase
        If Not context.Database.Exists() Then               
            context.Database.Create()
        Else

            Dim migrationHistoryTableExists = DirectCast(context, IObjectContextAdapter).ObjectContext.ExecuteStoreQuery(Of Integer)(String.Format("SELECT COUNT(*) FROM information_schema.tables WHERE table_schema = '{0}' AND table_name = '__MigrationHistory'","connstring"))

            If migrationHistoryTableExists.FirstOrDefault() = 0 Then
                context.Database.Delete()
                context.Database.Create()
            End If
        End If
    End Sub