.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
相关产品推荐
相关产品推荐

