Рассмотрим таблицу SQL Server, содержащую:
ID ParentID Text
=== ========= =============
1 (null) Product
2 (null) Applications
3 1 Background
4 1 Details
5 2 Mobile
Я заполняю SqlDataSet таблицей, и теперь я хочу добавить отношение Parent-Child к DataSet:
public DataRelation(
string relationName,
DataColumn parentColumn,
DataColumn childColumn,
bool createConstraints
)
Теперь этот парень использует:
DataRelation relation = newDataRelation("ParentChild",
ds.Tables[0].Columns["ID"], //parentColumn
ds.Tables[0].Columns["ParentID"] //childColumn,
true //createConstraints
);
Но когда я это делаю, я получаю исключение:
This constraint cannot be enabled
as not all values have corresponding parent values.
Люди предложили передать ложь за createConstraints
; но тогда почему это работает для него?
А что такое ребенок и кто вообще родитель? я бы подумал, что дочерний столбец - это столбец, который должен указывать на родителя, а родительский столбец - это то, что делает указание, которое обратит отношение:
DataRelation relation = newDataRelation("ParentChild",
ds.Tables[0].Columns["ParentID"], //parentColumn
ds.Tables[0].Columns["ID"], //childColumn
true //createConstraints
);
Так что это? Почему его работа? Что за исключением? Почему он может создать ограничение, когда у него есть нули?
Боже, здесь жарко.