2011-05-14 27 views
1

我知道如何執行SQL查詢來添加外鍵,連接到DataBase並在C#中獲取數據等。但是在Google長時間搜索後,我無法在C#中找到任何與外鍵有關的功能(或類,方法,API等)。C#中用於SQLCE外鍵的功能

回到我在Rails的時候,如果兩個表有關係,我可以通過父表很容易地訪問子表老師[0] .Class.Last。但是這些方法似乎在C#中缺失?我對嗎?

我正在使用C#,SQLCE和WPF。

我有兩個表有一對一的關係。但是包括引用鍵的所有數據都是手動插入的(例如,這一行,插入一個「1」,該行插入一個「5」等),並在子表中找到與父表的ID對應的行,我只是必須在C#中執行if語句。

所以基本上我的一個外鍵只是另一個int列。我沒有得到參考文獻的實際內容,或者僅僅是一個命名約定?正因爲如此,代碼的讀者才能看到一個引用並確定它有一個關係,但這個外鍵實際上並沒有實質上做任何事情?

回答

1

回來時,我在Rails中,如果兩個表之間有關係,我可以很容易通過Teacher [0] .Classes.Last訪問父表中的子表,但是這些方法似乎在C#中缺失?

你可以用Entity Framework和其他許多ORM做類似的事情。

所以基本上我的一個外鍵只是另一個int列。 ......正因如此,代碼的讀者才能看到一個引用,並認爲這是一種關係,但外鍵實際上並沒有實質上做任何事情?

正確 - 一旦離開數據庫,foriegn鍵的值就失去意義。相反,正常的是嵌套對象。例如,您可以擁有一個可以包含Address對象的Customer對象。地址對象也可能攜帶它的foriegn鍵值,但通常你不會在C#代碼中使用它(除非你用類似於LINQ查詢的方式) - 當你返回時,你會使用foriegn鍵值數據庫。

0

外鍵表示域模型中對象之間的關係。它強化了誠信。

(在一些數據庫中,外鍵還可以加快查詢,因爲查詢優化器能夠使用這個信息)