2012-02-23 42 views
0

注意:這似乎已被間接詢問了好幾次,但從未真正回答過。使用實體框架插入標識值

我有一行,我刪除使用實體框架。當我刪除它時,我將它歸檔到另一個表中。在某些情況下,該行需要恢復到它來自的表格。

但是,這裏是踢球者,我真的很喜歡它有與它被刪除時完全相同的ID(我實際上需要從幾個表中刪除這些ID,這些ID是從這個ID中刪除的)。

有EF把行與指定的標識值的任何方式(但仍然爲其他刀片的身份)。

如果沒有這將是解決EF使此插入一個很好的方式(實現我的WCF應用程序可以使用EF在同一時間做出的插入和更新該表(雖然有不同的身份) )。

我使用SQL Server 2008 R2和Entity Framework 4

回答

0

什麼其他刀片將進入要求他們有自己的ID此另一個表?

無論如何,你應該做的是有一個IDENTITY列和一個可爲空的int列,它存儲了被刪除時的ID。當這些信息不相關時,你只是不填充該列。

+0

該表是一個正常的活動表。把它看作一個客戶表。新客戶被添加,但是當一個被刪除的客戶被重新激活時,我們希望保留以前的相同信息和歷史記錄。 (注意:我們已經過去了保持「活動」標誌的地步。) – Vaccano 2012-02-23 00:23:12

+0

由於您使用的是SQL Server 2008 R2,並且根據「過去的觀點」的含義,您是否查看了過濾的索引?如果沒有引入這個「讓我們在這個表中刪除行」這個併發症,那麼一個where子句爲「Active = 1」的索引包含了您通常所使用的列可能會對已知問題提供一個非常簡單的解決方案。 – 2012-02-23 00:25:54

+0

「過去的觀點」是指需要更新以處理「主動= 0」場景的許多代碼行。過濾後的索引是一個非常好的功能,但它們不會隱藏數據,它們只會更快地獲取具有特定特徵的數據(至少從我所見過的數據中)。 – Vaccano 2012-02-23 00:47:06