0
我在兩個SQL表之間創建了一個外鍵約束。然後我進入了該項目的EDMX並選擇了「來自數據庫的更新模型」。但是,我的圖表顯示錶之間沒有行,也沒有任何導航屬性。我關心線條的唯一原因是因爲線條,導航屬性和EF理解的關係都以某種方式綁定在一起;我不想因爲數據完整性而搞砸了,因爲EF對關係有不同的看法。通過SQL外鍵關係獲取實體框架的導航屬性
問題:EF如何從數據庫中導出導航屬性?如果狀態在SQL本身內部維護,那麼需要向Azure SQL服務器發出哪些額外的命令才能使其明白?還是我必須手動修改EDMX?
這裏是我創建的外鍵連接兩個表
ALTER TABLE [dbo].[Employee]
WITH CHECK ADD CONSTRAINT [FK_Employee_Office_City] FOREIGN KEY([City])
REFERENCES [dbo].[Office] ([City])
ON DELETE CASCADE
GO
ALTER TABLE [dbo].[Employee] CHECK CONSTRAINT [FK_Employee_Office_City]
GO
重要的一塊:父表(辦公室)的[城市]列不是主鍵 - 但它是一個UNIQUE INDEX
列。
此外,我們首先使用EF代碼,但隨着項目的發展,我們首先切換到數據庫優先。我們不得不在EDMX的數據庫中完全重新生成EDMX。而且由於舊錶格仍具有良好的導航屬性(EDMX重新生成後),該狀態必須以某種方式存儲在數據庫中以供EF重新創建。只是不知道如何...
好的,我很擔心。 EF圖中缺少導航屬性的主要缺點是什麼?我假設在SQL中有外鍵約束,關係完整性會好的,對嗎? – DeepSpace101
主要缺點是您必須自己處理相關對象。在加載/保存過程中,EF沒有執行automagic。 –
我放棄了約束條件,將原則表中的關鍵字作爲主鍵,並添加了約束並從數據庫中刷新了模型。仍然沒有線路!任何其他要求? – DeepSpace101