我们的项目中有一个主键为 HIERARCHYID 类型的表:
CREATE TABLE [dbo].[OurTable]
(
[Id] HIERARCHYID NOT NULL,
<other fields>
)
以及与 Dapper 查询一起使用的相应类:
[Table("OurTable")]
public class OurTable
{
[ExplicitKey]
public SqlHierarchyId Id { get; private set; }
<other fields>
}
对象被创建并初始化,InsertAsync 被调用,并立即以“无法将 Null 插入 Id 字段”而失败,即使调试显示 Id 不为空并且在我们尝试插入的位置具有正确的值。
[ExplicitKey] 属性是专门为修复此类情况而添加的,但看起来......不是吗?我还能在这里错过什么?