1
目前,我已在在我的代碼如下:表分裂/可選關係
modelBuilder.Entity<Client>().HasRequired(e => e.Logo).WithRequiredPrincipal();
該關係定義用於表分裂標誌列(它是VARBINARY(MAX))到一個單獨的實體。一切都按預期工作。
我已選擇使數據庫中的空標誌列可用。我試圖更新上面列出的代碼:
modelBuilder.Entity<Client>().HasOptional(e => e.Logo).WithOptionalPrincipal();
當運行的代碼,我收到以下消息:
附加信息:實體類型「ClientLogo」和「客戶」不能共享表「的客戶',因爲它們不在同一個類型層次結構中,或者沒有有效的一對一外鍵關係,並且在它們之間具有匹配的主鍵。
問題是我不完全確定這封郵件是想告訴我什麼。爲什麼它在Logo列不可爲空但不工作時不起作用?我是否錯誤地映射了關係?
謝謝你的答覆。我必須說,你的解決方案仍然讓我感到困惑。在EF中建立關係對我而言仍然有點神祕。我認爲拋棄我的是,對於這些類型的關係(表格拆分),即使不需要結束列,屬性的值(此例中的徽標)也不能爲null。無論如何,我將你的解決方案標記爲答案,因爲它讓我的代碼工作。 –
@JasonRichmeier:我認爲,如果你想象一下'ClientLogo'不僅僅有一個屬性,而且'ClientLogo'不是必需的情況下的意義,那麼這可能會更有意義。在實體模型和數據庫表示之間進行處理時,會有更多邊緣案例需要處理。 – jjj