2 回答

TA貢獻(xiàn)1825條經(jīng)驗(yàn) 獲得超4個(gè)贊
我也無法重現(xiàn),但您不需要這里的擁有類型。
使用擁有的類型是使用非標(biāo)量屬性的 JSON 序列化的替代方法。使用擁有的類型時(shí),類型與引用它的實(shí)體一起存儲(chǔ)。因此,擁有類型 EF 將創(chuàng)建具有單獨(dú)的 Settings_NotificationEnabled 和 Settings_GymPassId 列的 Person 表。
因此,您可以簡單地刪除 OwnedAttribute,并確保您沒有將其聲明為DbSet<PersonSettings>
DbContext 中具有類型屬性的實(shí)體。
至于選擇哪個(gè),我通常會(huì)在這種情況下使用擁有類型,因此您可以通過各個(gè) PersonSettings 屬性查詢數(shù)據(jù)庫。
使用非標(biāo)量屬性的JSON轉(zhuǎn)換為對(duì),你有一個(gè)集合的情況下非常有用,因?yàn)镋F核心目前不支持所屬類型的集合。

TA貢獻(xiàn)1836條經(jīng)驗(yàn) 獲得超5個(gè)贊
我遇到了同樣的問題,為我解決的是遵循此處的文檔。
基本上你想要做的是OwnsOne在你的實(shí)體配置中添加一個(gè)Person:
builder.OwnsOne(p => p.PersonSettings, ps => {
//if need be add additional settings here for NotificationsEnabled and GymPassId
});
這將在 Person 和 PersonSettings 之間創(chuàng)建一個(gè)“鏈接”,遷移生成器使用它來構(gòu)建腳本。
- 2 回答
- 0 關(guān)注
- 172 瀏覽
添加回答
舉報(bào)