Dapper 读取 SqlHierachyId 列 (SQL Server 2008 R2)

5 .net c# sql-server dapper

我正在尝试从包含 SQL Serverhierarchyid类型(又名SqlHierachyId)列的 SQL Server 2008 R2 数据库中读取数据。

我想将这个类与 Dapper 一起使用:

public class Foo 
{ 
    public int Id { get; set; }
    public SqlHierarchyId Path { get; set; }
} 
Run Code Online (Sandbox Code Playgroud)

例如:connection.Query<Foo>("select 3 as [Id], hierarchyid::Parse('/1/2/3/') as [Path]");

(测试时注意,需要引用 Program Files (x86)\Microsoft SQL Server\110\Shared\Microsoft.SqlServer.Types.dll才能使用SqlHierarchyId)

如果我运行这个,我会得到一个 DataException 异常:Error parsing column x (Path=/1/2/3/ - Object)

我尝试通过添加 ITypeMap 并在所有接口方法上设置断点来查看它传递的值 - 但它永远不会被调用。

关于如何让 Dapper 让我指定自定义映射器有什么建议吗?(或者,如果有一个支持所有 Sql 类型的扩展,那也很好)

Mar*_*ell 4

SqlHierarchyIdDapper 1.34在核心库中有支持;现在应该可以正常工作了。