0

我在使用 Subsonic 3.0 为包含新 HeirachyID 数据类型的表生成对象时遇到问题。根据我的发现,没有对应的 .Net 类型,并且 subsonic 似乎不知道如何处理 hierachyid 数据。

抛出的错误:

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

代码:

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);
}

tc.Categories.ToList() 生成错误

或者,我尝试通过编写一个 sproc 以将 hierachyid 列作为字符串返回来解决这个问题,并注意到 SubSonic 3.0 sprocs 不是强类型的。还是我做错了什么?

4

1 回答 1

0

Sprocs 可以通过调用 ExecuteTypedList() 进行强类型化

我会在Github 跟踪器上创建一个问题,以添加对类型的支持(有人必须贡献这个,因为我认为它不是高优先级)或者在它们存在时优雅地处理它。

于 2009-07-12T18:42:17.670 回答