You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 04:34:44