在我的数据库中,我有一个这样的表
table foo
int pk
int someFK NULL
在 someFK 上具有外键约束,在 someFK 上具有唯一约束。这意味着在我拥有的 MySQL 数据库中,除非我在 someFK 中指定 NULL,否则在相应的表中当然必须有一行。但是,即使打开了唯一约束,我也可以在 someFK 中有几行带有 NULL 的行。
在我的代码中,我使用 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 中,并且这两个具有不同的主键但在 someFK 列上都有 DBNull,我会收到一条错误消息 Exception Type: System.Data.ConstraintException Exception Message: Column 'somefk' is constrained to是独一无二的。值 '' 已经存在。
这不是我所期望的,所以我想知道是否有人知道如何解决这个问题(不删除独特的属性)