找到这个选项:
var dtCols = con.GetSchema("IndexColumns", new[] { con.Database, null, table });
您需要找到代表标识符 (Id) 的列的名称,上面的代码有助于执行此操作,但并非总是如此。即 index_name - 以“PK_{table name}”形式表示名称。但有些表有不同的名称,例如:PK_HangFire_CounterAggregated。哪里有一个非常不同的顺序,其中 HangFire 是 schema 而 table 是 AggregatedCounter 。问题是,PK总是添加到ID(PRIMARY KEY)还是有其他方法可以找到表ID?
从这里看一个例子
如您所见,此示例违反了您对主键的想法。原则上,您可以自己选择名称,并且列不必是键中的一个。