1

我對ADO實體框架非常陌生,並且正在尋找最佳實踐。用於創建與其他實體具有關係的ADO.NET實體的WinForm

這裏是場景:我有一個數據庫與Person表和Address表。 Person有一個外鍵引用主鍵Address,一個自動遞增的int。首先,我使用VS 2010創建了一個ADO Entity模型,並且足夠肯定IDE可以理解這種關係。

現在我想創建一個Windows窗體,允許用戶填寫Person的基本信息和Address。通常,我可以將Person實體拖到空白的Windows窗體上,VS2010將自動創建必要的字段以及綁定。但是,額外的工作,我需要,以確保發生以下情況時,這種形式是由用戶填寫的事:

  1. 形式的Address部分被保存在Address
  2. Person信息保存在Person表中,以及在1中創建的Address的主鍵。
  3. 用戶從不觸及/看到任何主鍵。

我覺得我的困惑來自於我期待IDE做比預期更多的編碼;如果我必須快速破解這個,我可能會添加一個單擊事件到「保存」按鈕,首先調用Address上的SaveChanges(),然後再調用Person。這是最佳做法,還是有更可接受的做法?

+0

我很抱歉提前知道這種情況出現了很多,但我無法通過搜索找到答案。 – Jay 2010-06-15 15:48:49

+0

你在建模:多人住在1個地址? – 2010-06-15 15:53:28

+0

它可能發生。我喜歡在地址表中存儲所有地址,因爲會有其他實體可能引用它。此外,我想從更一般的角度來了解最佳做法。 – Jay 2010-06-15 15:55:29

回答

0

你不應該做很多額外的事情。但是您應該在Address和Person的DataContext上調用SaveChanges(以正確處理不同的插入/刪除方案)。

您應該簡單地刪除與鍵有關的所有控件(列)。

您是否遇到特定問題?

+0

我沒有特定問題;只是調整到C#/ ADO/.NET。 我也知道我可以刪除與按鍵相關的控件,但我更不確定如何將相關實體保存在同一個表單上。我想我需要閱讀DataContext,因爲它似乎比我想象的還要多。 – Jay 2010-06-15 15:59:57

+0

是的,閱讀。有多種方法可以創建新的對象。但它相對容易。不要撥弄鑰匙,而是將實體添加到集合或將其設置在屬性中。 – 2010-06-15 16:03:10

相關問題