0
我想弄清楚如何防止實體框架在我的一個表上創建複合主鍵。我有以下兩個實體:阻止實體框架創建複合主鍵
public class Entry
{
public Int64 EntryID { get; set; }
public string UserName { get; set; }
public string EntrySubject { get; set; }
}
public class Revision
{
public Int64 RevisionID { get; set; }
public string RevisionDescription { get; set; }
public Int64 EntryID { get; set; }
public Entry Entry { get; set; }
}
當實體框架生成數據庫,修訂表得到由於RevisionId和的EntryID的複合主鍵。我希望修訂表的主鍵只能是RevisionID。有沒有辦法做到這一點? (我使用實體框架4.3與SQL Server CE,如果有差別。)
我試過兩個那些方法,但既不方法奏效。我有一個簡單的測試應用程序只有這兩個類,我只是確認添加鍵註釋不起作用。我仍然得到一個複合鍵。 –
我創建了一個測試應用程序(發佈代碼),但沒有得到相同的結果 - 它按照預期創建了一個包含鍵的表。你能發佈你的測試應用程序嗎? –
啊,我得到了兩個不同的結果。當我使用你的代碼並且只允許SqlExpress創建數據庫時,我得到和沒有組合主鍵一樣的結果。但是,當我在你的代碼中使用SQL Server CE並使用連接字符串設置指定CE數據庫(.sdf)時,我得到了組合鍵。所以這個問題似乎與SQL Server CE(我使用EntityFramework.SqlServerCompact NuGet包,v4.3.5)。所以我想我的問題變成了,使用CE時可以防止這種行爲。但是,我會檢查你的答案,因爲它導致遇到問題的根源。謝謝。 –