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

.NET 9 Blazor Web应用修改Admin模型后更新SQLite数据库遇CS1061错误

解决.NET 9 Blazor中Admin模型字段变更后的编译与EF迁移问题

1. 先修复CS1061编译错误

这是因为项目中仍有代码在引用已移除的FullName字段,必须先解决编译问题才能进行数据库迁移:

  • 用VS Code全局搜索(Ctrl+Shift+F)查找所有Admin.FullName的引用,覆盖razor组件、服务类、控制器、数据访问代码等所有文件
  • 把所有FullName的使用替换为新字段的组合,比如需要显示全名时用$"{admin.GivenName} {admin.MiddleName ?? ""} {admin.FamilyName}".Trim()(处理中间名可能为空的情况)
  • 确认Admin模型类已正确修改:移除FullName字段,添加GivenName、MiddleName、FamilyName字段,示例代码:
public class Admin
{
    public int Id { get; set; }
    public string GivenName { get; set; } = string.Empty;
    public string? MiddleName { get; set; } // 可选字段设为可空字符串
    public string FamilyName { get; set; } = string.Empty;
    // 保留其他原有字段
}
  • 执行dotnet build验证编译错误彻底消失

2. 执行EF Core迁移更新SQLite数据库

编译通过后,同步数据库模型变更:

  • 生成迁移文件:在终端运行dotnet ef migrations add ReplaceFullNameWithGivenMiddleFamilyName(迁移名称需清晰描述变更内容)
  • 打开Migrations文件夹下生成的迁移文件,检查Up()方法是否正确移除FullName列并添加三个新列;Down()方法是否能正常回滚变更
  • 应用迁移到数据库:运行dotnet ef database update

3. 额外需要同步修改的内容

  • 如果项目有种子数据(比如DbContext的OnModelCreating方法或单独的Seed类),要把Admin种子对象的FullName替换为新字段的对应值
  • 如果存在Admin相关的DTO、ViewModel类,需同步移除FullName属性,添加对应的新字段,并更新映射逻辑(比如AutoMapper配置、手动映射代码)

内容的提问来源于stack exchange,提问作者DevQt

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 17:23:19