2017-05-24 39 views
1

我正在使用實體框架,我有一個場景,我傳遞了一個設計不正確的數據庫,我無法對其進行任何修改,因此請和我一起裸照。實體框架在插入時自引用主鍵

當我插入新記錄並自動生成自動標識值時。然後,我必須隨後使用在初始插入時生成的相同ID更新同一個表中的列。我能看到這個成就的唯一方法是首先保存,獲得新的PK,然後進行更新。但是,有沒有其他方式可以在1個數據庫調用中完成?我知道我可以很容易地用存儲過程來完成這個任務,但是現在我沒有這個選項。請參閱下面的表結構。

人 是PersonID INT(自動識別) 名字 姓氏 HeadOfHouseholdID此表

+0

我不認爲你可以通過一次調用來做到這一點(除非你可以使用存儲的proc/insert觸發器/等,你說你不能)。鑑於您需要設置字段,請確保將調用包裝在事務中,以便在任何一個失敗時不插入記錄。開始事務 - >保存記錄(插入) - >修改記錄 - >保存記錄(更新) - >提交事務 – AndrewP

+0

沒有必要存儲該信息,簡單規則將執行相同的操作:如果HeadOfHouseHoldID是空獲取PersonID –

+0

@SirRufo不是我的設計,根本不能修改數據庫。他們在視圖中使用該列,並且必須填充它才能工作。這是一個奇怪的場景。 – Scott

回答

0

有這可以在1個數據庫調用來完成任何其他方式INT(FK到是PersonID)?

觸發器或自定義SQL查詢可以工作。但它可能不值得擔心。