c # DataSet - использование уникального ограничения вместо первичного ключа - PullRequest
0 голосов
/ 03 февраля 2019

Допустим, у меня есть две таблицы, и я хочу создать для них уникальное ограничение для двух столбцов:

    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»всегда будет уникальным.Так можно ли реализовать это уникальное ограничение в отношении данных или мне просто нужно создать таблицу отношений многие-многие ?!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...