【发布时间】:2015-10-22 02:03:58
【问题描述】:
使用 microsoft sql server 假设以下示例表具有递归关系
[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
在我的真实情况下,基础对象可能有 60 个子对象作为第二级,第二级中的每个子级在第三级有 4 个子级,那么平面对象计数为 1 + 60 + (60*4) = 2461 个对象/行和对象有 25 个属性映射到继承表层次结构中的 25 个列,那么使用 c# ado.net 将该对象插入表的最佳方法是什么?我可以用 cte 吗?
【问题讨论】:
标签: c# .net sql-server recursion ado.net