core identity mysql_Microsoft.AspNetCore.Identity 使用 mysql 报错处理
1.使用mysql 首先要確定mysql connector 支的版本,正面是鏈接
https://dev.mysql.com/doc/connector-net/en/connector-net-entityframework-core.html
Table?9.2?Supported versions of Entity Framework Core
Connector/NETEF Core 1.1EF Core 2.0EF Core 2.1
6.10.4
.NET Standard 1.3 or .NET Framework 4.5.2 (and later)
Not supported
Not supported
6.10.5 to 6.10.7
.NET Standard 1.3 or .NET Framework 4.5.2 (and later)
.NET Standard 2.0 only (.NET Framework is not supported)
Scaffolding is not supported
Not supported
6.10.8
.NET Standard 1.3 or .NET Framework 4.5.2
.NET Standard 2.0 or .NET Framework 4.6.1 (and later)
Not supported
8.0.11 to 8.0.12
.NET Standard 1.6 or .NET Framework 4.5.2 (and later)
.NET Standard 2.0 only (.NET Framework is not supported)
Scaffolding is not supported
Not supported
8.0.13
.NET Standard 1.6 or .NET Framework 4.5.2
Not supported
.NET Standard 2.0 or .NET Framework 4.6.1 (and later)
2.配置數(shù)據(jù)庫連接字符串
{
"ConnectionStrings": {
"DefaultConnection": "Server=(localdb)\\mssqllocaldb;Database=aspnet-WebMvc-6350BA27-C046-416F-B717-F8342091E6E4;Trusted_Connection=True;MultipleActiveResultSets=true",
"MysqlConnection": "server=localhost;database=mydb;uid=root;pwd=123456;"
},
"Logging": {
"IncludeScopes": false,
"LogLevel": {
"Default": "Warning"
}
}
}
3 修改StartUP
public void ConfigureServices(IServiceCollection services)
{
services.AddDbContext(options =>
options.UseMySQL(Configuration.GetConnectionString("MysqlConnection")));
services.AddIdentity()
.AddEntityFrameworkStores()
.AddDefaultTokenProviders();
// Add application services.
services.AddTransient();
services.AddMvc();
}
4 生成Migration ,數(shù)據(jù)遷移過程中有一個bug就是原生 clr bool類型為強轉(zhuǎn)成short類型,如果要程序不報錯需要做一個強制轉(zhuǎn)換,在使用Add-Migration InitialCreate? 方法對生成的代碼需要加以下注釋
//
using System;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Migrations;
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
using WebMvc.Data;
namespace WebMvc.Migrations
{
[DbContext(typeof(ApplicationDbContext))]
[Migration("20181210165422_Update")]
partial class Update
{
protected override void BuildTargetModel(ModelBuilder modelBuilder)
{
#pragma warning disable 612, 618
modelBuilder
.HasAnnotation("ProductVersion", "2.2.0-rtm-35687");
modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRole", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd().HasMaxLength(50);
b.Property("ConcurrencyStamp")
.IsConcurrencyToken();
b.Property("Name")
.HasMaxLength(256);
b.Property("NormalizedName")
.HasMaxLength(256);
b.HasKey("Id");
b.HasIndex("NormalizedName")
.IsUnique()
.HasName("RoleNameIndex");
b.ToTable("AspNetRoles");
});
modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd().HasMaxLength(50);
b.Property("ClaimType");
b.Property("ClaimValue");
b.Property("RoleId")
.IsRequired().HasMaxLength(50);
b.HasKey("Id");
b.HasIndex("RoleId");
b.ToTable("AspNetRoleClaims");
});
modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd().HasMaxLength(50);
b.Property("ClaimType");
b.Property("ClaimValue");
b.Property("UserId")
.IsRequired();
b.HasKey("Id");
b.HasIndex("UserId");
b.ToTable("AspNetUserClaims");
});
modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin", b =>
{
b.Property("LoginProvider").HasMaxLength(50);
b.Property("ProviderKey").HasMaxLength(50);
b.Property("ProviderDisplayName");
b.Property("UserId")
.IsRequired();
b.HasKey("LoginProvider", "ProviderKey");
b.HasIndex("UserId");
b.ToTable("AspNetUserLogins");
});
modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserRole", b =>
{
b.Property("UserId").HasMaxLength(50);
b.Property("RoleId").HasMaxLength(50);
b.HasKey("UserId", "RoleId");
b.HasIndex("RoleId");
b.ToTable("AspNetUserRoles");
});
modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken", b =>
{
b.Property("UserId").HasMaxLength(50);
b.Property("LoginProvider").HasMaxLength(50);
b.Property("Name").HasMaxLength(50);
b.Property("Value");
b.HasKey("UserId", "LoginProvider", "Name");
b.ToTable("AspNetUserTokens");
});
modelBuilder.Entity("WebMvc.Models.ApplicationUser", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd();
b.Property("AccessFailedCount");
b.Property("ConcurrencyStamp")
.IsConcurrencyToken();
b.Property("Email")
.HasMaxLength(256);
b.Property("EmailConfirmed")
.HasColumnType("bit");
b.Property("LockoutEnabled")
.HasColumnType("bit");
b.Property("LockoutEnd");
b.Property("NormalizedEmail")
.HasMaxLength(256);
b.Property("NormalizedUserName")
.HasMaxLength(256);
b.Property("PasswordHash");
b.Property("PhoneNumber");
b.Property("PhoneNumberConfirmed")
.HasColumnType("bit");
b.Property("SecurityStamp");
b.Property("TwoFactorEnabled")
.HasColumnType("bit");
b.Property("UserName")
.HasMaxLength(256);
b.HasKey("Id");
b.HasIndex("NormalizedEmail")
.HasName("EmailIndex");
b.HasIndex("NormalizedUserName")
.IsUnique()
.HasName("UserNameIndex");
b.ToTable("AspNetUsers");
});
modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim", b =>
{
b.HasOne("Microsoft.AspNetCore.Identity.IdentityRole")
.WithMany()
.HasForeignKey("RoleId")
.OnDelete(DeleteBehavior.Cascade);
});
modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim", b =>
{
b.HasOne("WebMvc.Models.ApplicationUser")
.WithMany()
.HasForeignKey("UserId")
.OnDelete(DeleteBehavior.Cascade);
});
modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin", b =>
{
b.HasOne("WebMvc.Models.ApplicationUser")
.WithMany()
.HasForeignKey("UserId")
.OnDelete(DeleteBehavior.Cascade);
});
modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserRole", b =>
{
b.HasOne("Microsoft.AspNetCore.Identity.IdentityRole")
.WithMany()
.HasForeignKey("RoleId")
.OnDelete(DeleteBehavior.Cascade);
b.HasOne("WebMvc.Models.ApplicationUser")
.WithMany()
.HasForeignKey("UserId")
.OnDelete(DeleteBehavior.Cascade);
});
modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken", b =>
{
b.HasOne("WebMvc.Models.ApplicationUser")
.WithMany()
.HasForeignKey("UserId")
.OnDelete(DeleteBehavior.Cascade);
});
#pragma warning restore 612, 618
}
}
}
源碼下載
總結(jié)
以上是生活随笔為你收集整理的core identity mysql_Microsoft.AspNetCore.Identity 使用 mysql 报错处理的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 电脑前耳机孔有噪音(电脑耳机孔的杂音怎样
- 下一篇: mysql 数据路由_node-路由操作