Wir haben in unserem Projekt eine Tabelle mit einem Primärschlüssel vom Typ HIERARCHYID:
CREATE TABLE [dbo].[OurTable]
(
[Id] HIERARCHYID NOT NULL,
<other fields>
)
und die entsprechende Klasse für Dapper-Abfragen:
[Table("OurTable")]
public class OurTable
{
[ExplicitKey]
public SqlHierarchyId Id { get; private set; }
<other fields>
}
Das Objekt wird erstellt und initialisiert, der InsertAsync wird aufgerufen und schlägt fehl: "Kann kein Null in das Id-Feld einfügen", auch wenn das Debuggen zeigt, dass Id nicht Null ist und an der Stelle, an der versucht wird, einzufügen, der richtige Wert ist.
Das [ExplicitKey] -Attribut wurde speziell hinzugefügt , um Fälle wie diese zu beheben, aber es sieht so aus, als ob es nicht der Fall wäre. Was kann ich hier noch vermissen?
Wenn Sie dieses Problem nie gelöst haben, liegt möglicherweise ein Fehler in Dapper vor, der hier auf GitHub angezeigt wird.