2017-09-19 2 views

Répondre

3

je devais le faire pour un client. Et je l'ai fait dans une application avec ASP.NET Core 1.0, mais par curiosité, j'ai également essayé une application dans .NET Core 2.0. Ce que j'ai fait était d'abord installer le paquet Entity Framework MySQL de https://www.nuget.org/packages/Pomelo.EntityFrameworkCore.MySql/ en utilisant la console du gestionnaire de paquets.

Après que j'ai changé dans les startup.cs, dans la méthode ConfigureServices, l'option UseSqlServer-UseMySql, comme l'image ci-dessous.

enter image description here

Dans mon appsettings.json J'ai la connexion MySQL nommé IdentityConnection comme ceci:

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

Pour créer les tables d'identité, j'Exécuté la commande de migration dans la console de gestionnaire de paquets:

EntityFrameworkCore\Update-Database -Verbose 

enter image description here

2

EDIT: À ce stade, .Net Core 2.0 ne prend pas en charge l'identité avec MySQL, dans un proche avenir, il peut être à nouveau pris en charge.

__

Vous devez brancher Entity Framework avec MySQL avec la connexion de Pomelo et identité devrait fonctionner. Check this out ->https://damienbod.com/2016/08/26/asp-net-core-1-0-with-mysql-and-entity-framework-core/

+0

I t créera toutes les migrations ie (il créera toutes les tables comme AspNetUsers, AspNetRoles, etc ..) Et est ce support de Lib pour Core 2.0 –

+0

Vous avez raison. Je l'ai fait avec 1.3 et ça marche. Mais à ce stade 2.0 n'a pas de support. Je suis désolé de perdre votre temps. – Claudio

0

Vous pouvez créer une base de données d'identité avec votre base de données MySQL et utiliser la base de données d'identité pour votre autorisation

Voici comment je le fais.

//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")); 

Cela devrait fonctionner correctement avec votre MySQL DB

public class EFIdentityDbContext : IdentityDbContext 
{ 
    public EFIdentityDbContext(DbContextOptions<EFIdentityDbContext> options) 
     :base (options) 
    { 

    } 


}