c# - EF 无法识别新属性
问题描述
上周我为这个项目创建了我的模型,但本周需要更新它们。首先,我的“Person”类只有一个“Name”属性,现在它有一个“Firstname”和一个“Lastname”属性。现在我得到一个关于“名称”属性的异常,它甚至不再存在。
也没有创建数据库,这很可能是后续错误。
班级人
abstract class Person
{
[Key]
public int Id { get; set; }
[MaxLength(100)]
public string Firstname { get; set; }
[MaxLength(100)]
public string Lastname { get; set; }
public int Age { get; set; }
}
班级学生
class Student : Person
{
public School School { get; set; }
public virtual ICollection<Order> Orders { get; set; } = new List<Order>();
}
尝试添加学生
using (var ctx = new SchoolDbContext())
{
ctx.Persons.Add(new Student() {Firstname="Test" });
ctx.SaveChanges();
}
数据库上下文
class SchoolDbContext : DbContext
{
public SchoolDbContext() : base("SchoolDB")
{
}
public DbSet<Person> Persons { get; set; }
public DbSet<School> Schools { get; set; }
public DbSet<AArticle> Articles { get; set; }
public DbSet<APublisher> APublishers { get; set; }
public DbSet<Order> Orders { get; set; }
public DbSet<Subject> Subjects { get; set; }
}
例外
System.InvalidOperationException:“属性 'Name' 不是字符串或字节数组。只能为字符串和字节数组属性配置长度。”
我尝试清理解决方案,重新启动 VS,重建和重新清理......由于没有创建数据库,因此无法删除数据库。
我如何通知编译器“名称”属性不再存在,因为他自己没有得到它?
解决方案
您需要通过所谓的迁移将数据库与您的代码同步:-ef 核心:https : //docs.microsoft.com/de-de/ef/core/managing-schemas/migrations/ -ef 6:https:/ /docs.microsoft.com/en-us/ef/ef6/modeling/code-first/migrations/
推荐阅读
- icons - 必要时如何导入antd4图标?
- android - 检查移动应用程序时Chrome devtools空白页
- python - 如何将抓取的数据保存到 csv unsing pandas
- version - 在对应用程序进行更改时,Oracle SQL Developer 版本 19.2 和 Oracle APEX 版本 4.2 是否会相互支持?
- macos - SwiftUI for MacOS(不是 Catalyst) - 如何向导航栏添加按钮?
- python - TypeError:python 上的颜色参数无效
- android - 重新打开后台应用程序后防止深层链接
- css - 根据视口全局更改Vuetify中的字体大小?
- r - 有没有办法使用R从excel文件中提取图片?然后可以将其放入 tesseract ocr
- angular - 错误:试图覆盖
.__ivy_ngcc_bak 带有 ngcc 备份文件,这是不允许的