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
遇到上面这个错误,就直接修改迁移代码就好了。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步