Допустим, у меня есть две таблицы, и я хочу создать для них уникальное ограничение для двух столбцов:
public static DataSet TmpEx()
{
DataTable dt1 = new DataTable();
dt1.Columns.Add("AlphaID");
dt1.Columns.Add("ContainsNumID");
dt1.Rows.Add("A", "123");
dt1.Rows.Add("A", "222");
dt1.Rows.Add("B", "123");
dt1.Rows.Add("B", "333");
DataTable dt2 = new DataTable();
dt2.Columns.Add("NumberID");
dt2.Columns.Add("ContainsNumber");
dt2.Rows.Add("123", 1);
dt2.Rows.Add("123", 2);
dt2.Rows.Add("123", 3);
dt2.Rows.Add("222", 2);
dt2.Rows.Add("333", 3);
DataSet ds = new DataSet();
ds.Tables.Add(dt1);
ds.Tables.Add(dt2);
DataColumn[] dcs = new DataColumn[2] { dt1.Columns[0], dt1.Columns[1] };
dt1.Constraints.Add("UQ_AlphaID_NumID", dcs, true);
// ds.Relations.Add(dt1.Columns[1], dt2.Columns[1]);
return ds;
}
У меня есть две проблемы здесь, прямо в нижней части кода
во-первых, я даже не уверен, что моя инициация «ограничения» правильная (работает ли массив таких столбцов?)
секунда в том, чтокомпилятор говорит мне, что в отношении нет уникальных столбцов - это очевидно верно, потому что это отношение «многие ко многим», но таблица «многие ко многим» не существует, потому что «AlphaID» и его комбинация «ContainsNumID»всегда будет уникальным.Так можно ли реализовать это уникальное ограничение в отношении данных или мне просто нужно создать таблицу отношений многие-многие ?!