0
這應該很簡單。實體框架數據庫更新:外鍵引用無效列(導航屬性)
我有客戶和項目:
public class Client
{
public int ClientID { get; set; }
public string ClientName { get; set; }
public virtual ICollection<Project> Projects { get; set; }
}
public class Project
{
public int ProjectID { get; set; }
public string ProjectName { get; set; }
}
所有這一切工作正常。在我的項目表中,我有一個字段:Client_ClientID存儲關係。
現在,我想補充的項目的導航性能,到客戶端:
public class Project
{
public int ProjectID { get; set; }
public string ProjectName { get; set; }
// navigation properties
public virtual Client Client { get; set; }
}
當我運行更新的數據庫,我得到的錯誤:
Foreign key 'FK_dbo.Projects_dbo.Clients_Client_ClientID' references invalid column 'Client_ClientID' in referencing table 'Projects'
的詳細SQL被顯示爲:
EXECUTE sp_rename @objname = N'dbo.Projects.Client_ClientID', @newname = N'Client_ClientID1', @objtype = N'COLUMN'
ALTER TABLE [dbo].[Projects] ADD CONSTRAINT [FK_dbo.Projects_dbo.Clients_Client_ClientID] FOREIGN KEY ([Client_ClientID]) REFERENCES [dbo].[Clients] ([ClientID])
我不知道爲什麼它會嘗試將Client_ClientID重命名爲Client_ClientID1,然後再添加cons在它上面運行 - 看起來很奇怪?
我得到什麼錯誤?
謝謝。因爲我沒有從那開始,所以它使用名稱「Client_ClientID」作爲FK字段。我必須刪除我的表並刪除__MigrationHistory,然後運行Update-Database -Force以使其重新創建上述架構。似乎現在工作,再加上它自動級聯刪除(我可以刪除我的手動應用程序)。完善! – Sean 2013-03-24 06:45:06