mysql - SetInitializer用于数据库错误

标签 mysql asp.net vb.net entity-framework

我正在尝试转换示例 ASP.Net 帖子; ASP.NET Identity:将 MySQL 存储与 EntityFramework MySQL 提供程序结合使用 (C#) Project found here

以下代码来自示例

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

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

这将转换为 vb.net,如下所示

Public Class ApplicationDbContext
Inherits IdentityDbContext(Of ApplicationUser)
Shared Sub New()
            'the code is erring here on the next line
    Database.SetInitializer(New MySqlInitializer())
End Sub

Public Sub New()
    MyBase.New("DefaultConnection")
End Sub

下课

初始化类如下

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

Database.SetInitializer(New MySqlInitializer()) 代码行中的代码出错

错误 31262 如果没有类的显式实例,则无法从共享方法或共享成员初始值设定项中引用类的实例成员。 C:\WebAppTemplate\AspNetIdentityTemplate_MySql\AspNetIdentityTemplate_MySql\Models\IdentityModels.vb 14 9 AspNetIdentityTemplate_MySql

数据库下 DataBase.SetInitializer 行中的蓝色波浪线...

我所有的纠正尝试都会导致相同或其他错误。任何帮助表示赞赏。

最佳答案

该帖子的一个代码示例中存在错误。

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

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

enter image description here enter image description here

关于mysql - SetInitializer用于数据库错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21607008/

相关文章:

mysql 与同一个表的多个连接

php - 如何修复 PHP 中的登录表单

asp.net - 文本框的默认值

asp.net - 处理程序页面 (.ashx) 可以获取配置设置吗?

带有 bool 值的 MySQL JSON_SEARCH 不起作用

asp.net - 是否可以通过 css 更改生成的 <tr> 的位置?

.net - Image.FromFile 非常非常慢

vb.net - 按顺序进行控制

asp.net - 通过javascript从代码后面访问变量

PHP/MySQL : How to store Select results in array