Пожалуйста, сообщите мне. Я пытаюсь написать CLR функцию для SQL сервера. Я использую документ Microsoft для записи ниже функции Ref-LINK Поиск предков с помощью CLR Обычной операцией, включающей два узла в иерархии, является поиск наименьшего общего предка. Это может быть записано в Transact- SQL или CLR, потому что тип иерархии доступен в обоих. Рекомендуется CLR, потому что производительность будет выше.
Используйте следующий код CLR, чтобы перечислить предков и найти наименьшего общего предка:
using Microsoft.SqlServer.Server;
using Microsoft.SqlServer.Types;
using System;
using System.Collections;
using System.Text;
public partial class HierarchyId_Operations
{
[SqlFunction(FillRowMethodName = "FillRow_ListAncestors")]
public static IEnumerable ListAncestors(SqlHierarchyId h)
{
while (!h.IsNull)
{
yield return (h);
h = h.GetAncestor(1);
}
}
public static void FillRow_ListAncestors(
Object obj,
out SqlHierarchyId ancestor
)
{
ancestor = (SqlHierarchyId)obj;
}
public static HierarchyId CommonAncestor(
SqlHierarchyId h1,
HierarchyId h2
)
{
while (!h1.IsDescendantOf(h2))
h1 = h1.GetAncestor(1);
return h1;
}
}
Но я вижу эту ошибку:
Я пытаюсь использовать решения Visual Studio, но не работает по-настоящему. затем используйте inte rnet search и найдите Nugget, но мой самородок отключен.