ASP.NET Core认证迁移至SQL Server 2017报错求助
ASP.NET Core认证迁移至SQL Server 2017的错误解决求助
我最近在把ASP.NET Core认证系统迁移到SQL Server 2017时碰到了一连串问题,折腾好久没搞定,来求助大家:
初始错误:迁移过程中抛出异常
Column, parameter, or variable #9: Cannot find data type datetimeoffset,排查后发现是因为IdentityUser里的LockoutEnd字段类型为datetimeoffset,但SQL Server 2017并不支持这个数据类型。尝试解决后的新问题:我尝试通过忽略
LockoutEnd字段来绕开第一个错误,在OnModelCreating方法中添加了以下代码:
protected override void OnModelCreating(ModelBuilder builder) { base.OnModelCreating(builder); builder.Entity<IdentityUser>(entity => entity.Ignore(x => x.LockoutEnd)); }
但运行迁移时又出现了新的错误:Incorrect syntax near the keyword 'WHERE',对应的执行SQL命令如下:
Failed executing DbCommand (0ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] CREATE UNIQUE INDEX [RoleNameIndex] ON [AspNetRoles] ([NormalizedName]) WHERE [NormalizedName] IS NOT NULL;
我已经自行查找了不少资料,但始终没找到有效的解决方案,之前的操作是参考ASP.NET Core认证相关教程进行的,现在卡在这一步了,希望有大佬能帮忙分析下问题所在,给出解决办法。
内容的提问来源于stack exchange,提问作者Dam Tran
相关产品推荐
相关产品推荐

