2 回答

TA贡献1825条经验 获得超4个赞
我也无法重现,但您不需要这里的拥有类型。
使用拥有的类型是使用非标量属性的 JSON 序列化的替代方法。使用拥有的类型时,类型与引用它的实体一起存储。因此,拥有类型 EF 将创建具有单独的 Settings_NotificationEnabled 和 Settings_GymPassId 列的 Person 表。
因此,您可以简单地删除 OwnedAttribute,并确保您没有将其声明为DbSet<PersonSettings>
DbContext 中具有类型属性的实体。
至于选择哪个,我通常会在这种情况下使用拥有类型,因此您可以通过各个 PersonSettings 属性查询数据库。
使用非标量属性的JSON转换为对,你有一个集合的情况下非常有用,因为EF核心目前不支持所属类型的集合。

TA贡献1836条经验 获得超5个赞
我遇到了同样的问题,为我解决的是遵循此处的文档。
基本上你想要做的是OwnsOne在你的实体配置中添加一个Person:
builder.OwnsOne(p => p.PersonSettings, ps => {
//if need be add additional settings here for NotificationsEnabled and GymPassId
});
这将在 Person 和 PersonSettings 之间创建一个“链接”,迁移生成器使用它来构建脚本。
- 2 回答
- 0 关注
- 147 浏览
添加回答
举报