我遇到了一個代碼優先的問題。數據現在在數據庫中,所以我不能使用DropCreateDatabaseIfModelChanges類重新設置數據庫的種子,但我需要更改一個表,以便bigint列不是IDENTITY(1,1)。我設法使用SSMS來做到這一點,但現在我的EF代碼說它已經過時了。 這是有問題的表的代碼:實體框架4.1代碼優先KeyAttribute作爲非標識列
public class Vote {
[Required, Key, DatabaseGenerated(DatabaseGeneratedOption.None)]
public long FacebookUserId { get; set; }
[Required]
public Entity Entity { get; set; }
}
所以我改變了我的表架構,和我的模型(我認爲是它的倒影,但我顯然是錯誤的),但EF仍然在說我的模型已經過時,並且我無法重新設定數據庫的種子以使其「完美」。
任何幫助將不勝感激。
感謝,
本傑明
這消除了錯誤,但現在我得到一個新的錯誤,因爲我在表中映射了「實體」,它告訴我只有原始類型是允許的。我是否需要在某個時候重新創建數據庫,如果有,我如何在不破壞數據的情況下做到這一點? (如果第一部分的答案是肯定的,我會把它變成一個新問題) – 2011-04-28 15:29:46
你在代碼中改變了什麼。我以爲你只是增加了'DatabaseGenerated'屬性,但是這個抱怨未映射的實體。你不需要重新種子數據庫。 – 2011-04-28 18:18:21
單獨的表,沒有任何改變,也只是重新播種它,仍然得到這個錯誤。 – 2011-04-28 18:45:14