代码之家  ›  专栏  ›  技术社区  ›  Rony Patel

如何使用AspNet。我的Sql数据库中的标识核心

  •  10
  • Rony Patel  · 技术社区  · 7 年前

    asp.net核心2 使用 MySql数据库 .请帮助我如何使用 Asp网络标识 MySQL数据库 .

    4 回复  |  直到 7 年前
        1
  •  19
  •   Tiago Ávila    7 年前

    我必须为一个客户做这件事。我在一个应用程序中使用ASP。NET Core 1.0,但出于好奇,我还尝试了在中的应用程序。NET Core 2.0。

    我所做的是首先从安装实体框架MySQL包 https://www.nuget.org/packages/Pomelo.EntityFrameworkCore.MySql/ 使用包管理器控制台。

    ,在方法中 配置服务 使用MySQL

    enter image description here

    {
        "ConnectionStrings": {
            "IdentityConnection": "Server=127.0.0.1;Database=identitycoredb;Uid=root;Pwd=1234;"
        },
    

    为了创建标识表,我在package manager控制台中执行了迁移命令:

    EntityFrameworkCore\Update-Database -Verbose
    

    enter image description here

        3
  •  2
  •   ma1169    7 年前

    并使用身份数据库进行授权

    我就是这样做的。

       //MySQL Database 
         services.AddDbContext<EFDbContext>(options =>
                    options.UseSqlServer("Server = ; Database =MySQL  ; Trusted_Connection = True; MultipleActiveResultSets = true"));
    //Identity Database               
         services.AddDbContext<EFIdentityDbContext>(options =>
                        options.UseSqlServer("Server = ; Database = Identity; Trusted_Connection = True; MultipleActiveResultSets = true"));
    

    这应该可以与MySQL数据库一起使用

    public class EFIdentityDbContext : IdentityDbContext
    {
        public EFIdentityDbContext(DbContextOptions<EFIdentityDbContext> options )
            :base (options)
        {
    
        }
    
    
    }
    
        4
  •  0
  •   Jay    4 年前

    我回答得很晚,但这位开发人员很好地将整个解决方案放在了这个存储库中。

    https://github.com/jasonsturges/mysql-dotnet-core

    protected override void OnModelCreating(ModelBuilder builder)
    {
        base.OnModelCreating(builder);
    
        builder.Entity<IdentityRole>(entity => entity.Property(m => m.Id).HasMaxLength(127));
        builder.Entity<IdentityRole>(entity => entity.Property(m => m.ConcurrencyStamp).HasColumnType("varchar(256)"));
    
        builder.Entity<IdentityUserLogin<string>>(entity =>
        {
            entity.Property(m => m.LoginProvider).HasMaxLength(127);
            entity.Property(m => m.ProviderKey).HasMaxLength(127);
        });
    
        builder.Entity<IdentityUserRole<string>>(entity =>
        {
            entity.Property(m => m.UserId).HasMaxLength(127);
            entity.Property(m => m.RoleId).HasMaxLength(127);
        });
    
        builder.Entity<IdentityUserToken<string>>(entity =>
        {
            entity.Property(m => m.UserId).HasMaxLength(127);
            entity.Property(m => m.LoginProvider).HasMaxLength(127);
            entity.Property(m => m.Name).HasMaxLength(127);
        });
    }
    

    这是由我测试的一个项目,我正在工作的时候,张贴这个答案。