我在使用 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 不是强类型的。还是我做错了什么?