Asp.Net Core Identity+EFCore + Mysql踩坑记录

搭建基础框架准备试试传说中的Identity,本以为很顺利,结果一路踩了N多坑

遂就把过程记录下来。方便自己以后查看,也希望能帮到遇到同样问题的朋友。

1.首先,引入Identity需要的类库,还有Mysql的Nuget包

需要使用Code first的话,必须要引用Tools和Design两个包  

 

2.然后DBContext必须实现IdentityDbContext这个类

3.如果需要修改IdentityUser和IdentityRole的主键类型,这两个类是泛型类,需要改啥类型可以自己重写

4.需要再Startup的ConfigureServices里面添加重写的Dbcontext

  services.AddDbContext<AdminSharpDbContext>(option =>
            {
                option.UseMySQL("server=localhost;database=testdb;user=root;password=root;;Charset=utf8");
            });

5.如果确定要使用Mysql,请移除EFCore.SqlServer,不然会报错误(据说还有一种方法可以指定codefirst使用哪个数据库去操作,但是我在.Net Core里面没有找到方法怎么做,希望知道的朋友能告知一下)

6.Code First自动生成的迁移需要修改PrimaryKey,Mysql的PrimaryKey有长度限制,默认好像是1000,但是不同编码会不一样。Identity默认实现会超出这个限制,我认为应该算是一个bug。需要手动去修改迁移代码

Specified key was too long; max key length is 1000 bytes

遇到上面这个错误,就直接修改迁移代码就好了。

转载于:https://www.cnblogs.com/boxrice/p/8309072.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值