我正在使用EF 6.1.3。基本上我有兩類:實體框架 - 插入列創建重複
public class User
{
public int Id { get; set; }
}
public class Card
{
public int Id { get; set; }
public string Name { get; set; }
public User CreatedBy { get; set; }
}
當然,檢查表定義,是Card
CreatedBy
和User
Id
之間建立一個外鍵關係。 Card
現在有一個CreatedBy_Id
列。
我接種了一個默認User
(Id = 1),它存儲在一個變量中,我們將其稱爲CurrentUser
。現在,當我想輸入一個卡:
context.Cards.Add(new Card
{
Name = "Card of Water",
CreatedBy = CurrentUser
});
context.SaveChanges();
結果我得到的是新Card
被創建,但CreatedBy
沒有存儲CurrentUser
參考。而是創建了一個新的User
(Id = 2),這就是存儲在新的Card
的CreatedBy
中的內容。
我該如何解決這個問題?謝謝。
編輯:
CurrentUser
在程序的開始時設置的值,在Load
事件起始的形式。它被聲明爲一個全局變量:
CurrentUser = context.Users.First(); //In load event
添加只是爲了測試真的,在一個按鈕。上面的代碼就是它的全部。
從哪裏'CurrentUser'變量來?在這裏發佈完整的代碼,我會幫助你。 –
不會在db中創建關係 –
我可能在這裏是錯誤的,但是因爲'User'有一個int類型的id,所以'Card'類不應該有一個名爲'public int CreatedById {get;組; }'或者什麼,它存儲了創建它的用戶的實際整數ID? –