2009-12-30 49 views
0

我想使用C#在我的SQL Server數據庫中創建關係。通過C#在SQL Server中創建表關係

我有這樣的代碼:

foreach (ForeignKey fk in table.ForeignKeys) 
       { 
        if (!table.ForeignKeys.Contains("ProductMaterial")) 
       } 

       table.ForeignKeys.Add(
        new ForeignKey(
         new Table(database, 
            "ProductMaterial"), 
            "ProductMaterial")); 
       DataRelation relation = new DataRelation(
         "ProductMaterial", new DataColumn(),) 

「表」是從數據庫中的表收集,數據庫來自一個數據庫集合中的服務器實例。我有條件反轉,因爲我想添加一個明顯的關係,不存在的關係,所以我正在尋找沒有FK。

但是,我也有DataRelation行。我可以只添加一個FK,這將是關係嗎?或者我應該添加一個FK和一個數據對象?

感謝

回答

1

首先,僅僅是明確的(希望你已經知道這一點),這個代碼將不能在數據庫中創建任何東西...所有你影響是表之間的結構和關係在ADO.Net數據集對象中,它只存在於您正在運行此代碼的進程空間的內存中。

但是已經說過,添加外鍵只會建立一個約束。這意味着它可以防止將新記錄添加到該數據表中,其中FK字段中的值不存在於另一個表中。這與添加關係不一樣。一種關係表示父 - 子關係(在這裏稱爲關係是多餘的),它允許像網格等其他.Net對象以分層方式呈現數據。

所以是的,如果你想兩個你都需要添加兩個。

+0

謝謝。是的,我知道這不會持續對數據庫的更改。我省略了與問題無關的代碼,因此將其刪除(以及獲取正確數據庫的代碼)。 – dotnetdev 2009-12-30 15:24:46

+0

kewl,第一句話讓我明確地提到了這一點,對於迂腐的對話感到抱歉... ... – 2009-12-30 15:37:34

+0

沒問題,我應該說我無論如何都省略了代碼。 – dotnetdev 2009-12-30 18:53:22