我的应用程序中有一个名为 Person 的实体。有两种类型的用户,学生和教授,它们继承自 Person。
每个人都有一个设置属性:
public abstract class Person
{
public Guid UserId { get; set; }
public string Name { get; set; }
public PersonSettings Settings { get; set; }
}
public class Student : Person
{
}
public class Professor : Person
{
}
我的 PersonSettings 类只是几个属性。它不是要存储在数据库中的实体,因此我将其标记为拥有:
[Owned]
public class PersonSettings
{
public bool NotificationsEnabled { get; set; }
public int GymPassId { get; set; }
}
这些作为 json 存储在数据库中,我在我的 Person 实体配置中使用 EF Core 转换值来对其进行序列化和反序列化:
builder.Property(p => p.Settings).HasConversion(
s => JsonConvert.SerializeObject(s, new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore }),
s => JsonConvert.DeserializeObject<PersonSettings>(s, new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore }));
但是当我尝试运行我的应用程序并进行数据库迁移时,我收到一条错误消息
拥有的实体类型“PersonSettings”需要通过导航从另一个实体类型中引用。向指向“PersonSettings”的实体类型添加导航。
我应该在这里做什么?我在错误消息中找不到任何内容。不确定它是否与 Person 作为抽象类有关。
凤凰求蛊
一只甜甜圈
相关分类