2013-03-21 111 views
0

我正在研究在Ado.Net DataRelations和整個這個構造函數來無約束的外鍵?

public DataRelation(
    string relationName, 
    DataColumn parentColumn, 
    DataColumn childColumn, 
    bool createConstraints 
) 

這裏,最後一個參數是createConstraints,這是由MSDN爲

createConstraints解釋

類型:System .Boolean

一個值,指示是否創建約束。如果創建了 約束,則爲true。否則,錯誤。

如果我將它設置爲false那麼會發生什麼?它如何創建沒有約束的外鍵?

+2

「*會發生什麼*」 - 試試吧,告訴我們:) – LukeHennerley 2013-03-21 11:45:53

回答

1

是的,毫無約束被添加到ConstraintCollection

更多的約束關係將被創建:

關係可以從父也級聯的各種變化的DataRow 到其子行。爲了控制子行中值的更改方式, 將一個ForeignKeyConstraint添加到 DataTable對象的ConstraintCollection中。當刪除或更新父表中的值時,ConstraintCollection確定對 採取的操作。

http://msdn.microsoft.com/en-us/library/dz0az7c7.aspx

+0

所以,如果我將它設置爲false,絕對沒將採取行動,如果父母被更新或刪除? – Aditi 2013-03-21 11:47:49

+0

是的;哪部分文檔讓你感到困惑? – 2013-03-21 11:49:28

+0

'創建DataRelation時,它首先驗證是否可以建立關係。將它添加到DataRelationCollection後,通過禁止任何可能導致其無效的更改來維護關係。在創建DataRelation並將其添加到DataRelationCollection的這段時間內,可能會對父行或子行進行其他更改。如果這會導致不再有效的關係,則會生成異常。那麼,如果我刪除了它們所連接的父元組,那麼該關係就不會對子元組無效了嗎? – Aditi 2013-03-21 11:54:35