Dapper.Contrib - InsertAsync не может вставить ключ HIERARCHYID

В нашем проекте есть таблица с первичным ключом типа 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, и сразу же происходит сбой с сообщением "Не удается вставить нулевое значение в поле Id", даже если отладка показывает, что Id не является нулевым и имеет правильное значение в точке, где мы пытаемся вставить.

Атрибут [ExplicitKey] был добавлен специально для исправления подобных случаев, но похоже, что... не так ли? Что еще я могу здесь упустить?

1 ответ

Если вы никогда не решали эту проблему, это может быть существующая ошибка в Dapper, замеченная здесь на GitHub.

Другие вопросы по тегам