В моей базе данных у меня есть таблица, как этотУникальное ограничение на Nullable в System.Data.DataColumn
table foo
int pk
int someFK NULL
с ограничением внешнего ключа на someFK и уникального ограничения на someFK. Это означает, что в базе данных MySQL, которая у меня есть, если я не укажу NULL в someFK, в соответствующей таблице, конечно, должна быть строка. Тем не менее, я могу также иметь несколько строк с NULL в someFK, даже если включено уникальное ограничение.
В моем коде, я использую System.Data имен и сделать так:
DataTable table = new DataTable("Foo");
DataColumn col = null;
DataColumn[] primaryKey = new DataColumn[1];
col = table.Columns.Add(FooPropertyName, typeof(int));
col.Unique = true;
col.AutoIncrement = true;
primaryKey[0] = col;
table.PrimaryKey = primaryKey;
col = table.Columns.Add(SomeFkPropertyName, typeof(int));
col.Unique = true;
col.AutoIncrement = false;
Однако, если добавить две DataRows к моей DataTable, и те две разные первичные ключи, но оба имеют DBNull на someFK, я получаю сообщение об ошибке Тип исключения: System.Data.ConstraintException Сообщение об исключении: Столбец «somefk» ограничен уникальным. Значение '' уже присутствует.
Это не то, что я ожидал, так что мне было интересно, если кто-то знает, как обойти эту проблему (не снимая уникальное свойство)
В отличие от форумов, мы не используем «Спасибо», или «Любая помощь оценена» или подписи на [so]. См. «[Должны ли« Привет »,« спасибо », теги и приветствия удалены из сообщений?] (Http://meta.stackexchange.com/questions/2950/should-hi-thanks-taglines-and-salutations-be –