Dapper.Contrib - InsertAsync 无法插入 HIERARCHYID 键

Dapper.Contrib - InsertAsync fails to insert an HIERARCHYID key

我们的项目中有一个 table,其主键为 HIERARCHYID 类型:

CREATE TABLE [dbo].[OurTable]
(
    [Id]                HIERARCHYID     NOT NULL,
    <other fields>
)

和对应的 class 用于 Dapper 查询:

[Table("OurTable")]
public class OurTable
{
    [ExplicitKey]
    public SqlHierarchyId Id { get; private set; }
    <other fields>
}

创建并初始化对象,调用 InsertAsync,并立即失败并显示 "Cannot insert Null into Id field",即使调试显示 Id 不为空并且在我们尝试插入时具有正确的值.

[ExplicitKey] 属性 was added 专门用于修复此类情况,但看起来……不是吗?我还能在这里缺少什么?

如果您从未解决过这个问题,它实际上可能是 Dapper 中的一个现有错误 here on GitHub