Subsonic 亚音速3.0和SqlHierachyID

Subsonic 亚音速3.0和SqlHierachyID,subsonic,subsonic3,Subsonic,Subsonic3,我在亚音速3.0为包含新的HeirachyID数据类型的表生成对象时遇到问题。从我发现的情况来看,没有腐蚀性的.Net类型,亚音速似乎不知道如何处理分层数据 引发的错误: “Microsoft.SqlServer.Types.SqlHierarchyId”类型的对象无法转换为“System.String”类型 代码: foreach(DataAccess.ThingCategory.Find(x=>x.fk_Thing.Equals(thingId))中的MyDB.DataAccess.Thin

我在亚音速3.0为包含新的HeirachyID数据类型的表生成对象时遇到问题。从我发现的情况来看,没有腐蚀性的.Net类型,亚音速似乎不知道如何处理分层数据

引发的错误:

“Microsoft.SqlServer.Types.SqlHierarchyId”类型的对象无法转换为“System.String”类型

代码:

foreach(DataAccess.ThingCategory.Find(x=>x.fk_Thing.Equals(thingId))中的MyDB.DataAccess.ThingCategory tc)
{
sb.AppendFormat(“{1}”,wrapTag,tc.Categories.ToList()[0].Name);
}
tc.Categories.ToList()生成错误


或者,我试图通过编写一个存储过程来绕过这个问题,以字符串形式返回hierachyid列,并注意到亚音速3.0存储过程不是强类型的。还是我做错了什么?

可以通过调用ExecuteTypedList()来强类型化存储过程


我会在上创建一个问题,要么添加对该类型的支持(因为我认为这不是一个高优先级的问题,所以必须有人对此进行贡献),要么在它们存在时优雅地处理它。

看起来没有其他人有任何信息要添加,所以我将此标记为已接受。谢谢你回答我的问题。
foreach (MyDB.DataAccess.ThingCategory tc in DataAccess.ThingCategory.Find(x => x.fk_Thing.Equals(thingId)))
{
    sb.AppendFormat("<{0}>{1}</{0}>", wrapTag, tc.Categories.ToList<DataAccess.Category>()[0].Name);
}