Использования Microsoft SQL-сервер принимает следующий образец таблицу с рекуррентным соотношениемВставка рекурсивный/вложенный объект в рекурсивной таблице
[dbo].[IPAddress]
(
[IPAddressID] [int] PRIMARY KEY IDENTITY(1,1),
[IP] [nchar] (15),
[ParentID] [int] FOREIGN KEY REFERENCES [IPAddressID]
)
Я следующий вложенный объектом, который содержит список одного типа объектов
public class IPAddress
{
public int IPAddressID { get; set; }
public string IP { get; set; }
public IPAddress[] Childs { get; set; }
}
var IP = new IPAddress
{
IP = "10.0.0.0",
Childs = new IPAddress[]
{
new IPAddress
{
IP="10.1.0.0",
Childs = new IPAddress[]
{
new IPAddress{ IP="10.1.1.0" },
new IPAddress{ IP="10.1.2.0" },
new IPAddress{ IP="10.1.3.0" }
}
}
}
};
Когда вставка, что объект, данные в таблице должны быть такими:
IPAddressID,IP,ParentID
10,'10.0.0.0',Null
12,'10.1.0.0',10
13,'10.1.1.0',12
14,'10.1.2.0',12
15,'10.1.3.0',12
В моей реальной с ase базовый объект может иметь 60 дочерних элементов второго уровня, каждый ребенок второго уровня имеет 4 ребенка на третьем уровне, тогда число плоских объектов равно 1 + 60 + (60 * 4) = 2461 объект/строка, а объект имеет 25 свойство, сопоставленное с 25 столбцами в иерархии таблиц наследования, так что лучший способ вставить этот объект в таблицу с помощью C# ado.net? могу ли я использовать cte в этом?