今天Insus.NET分享经验,在开发时,我们是怎样存储一对多关系的数据。怎样说呢,你会遇上主表记录与子表记录同时存储,但子表与主表有主外键关联。
下面创建两张表,它们有关联,主键外键。
![](https://images2015.cnblogs.com/blog/28036/201510/28036-20151019135950349-772542654.png)
一般情况之下,你先添加主表TableA的记录,得到添加的主键值之后,再添加TableB的记录。或者是同时提交,但需要程序连2次数据库,得到主键值,再插入TableB的数据。
下面Insus.NET的做法是一次性提交至数据库中。
先数据库中,创建的自定义表类型,这个类型基本上就是TableB的结构:
![](https://images2015.cnblogs.com/blog/28036/201510/28036-20151019141234724-1368562943.png)
创建一个存储过程,对主表TableA数据插入,并返回主键值。
![](https://images2015.cnblogs.com/blog/28036/201510/28036-20151019145706692-1458284984.png)
下面的存储过程,才是给程序引用:
![](https://images2015.cnblogs.com/blog/28036/201510/28036-20151019150130739-616291083.png)
在程序中,我们可以创建一个类别:
![](https://images2015.cnblogs.com/blog/28036/201510/28036-20151019155311614-1888968152.png)
前端使用这个类别:
![](https://images2015.cnblogs.com/blog/28036/201510/28036-20151020081927161-597611696.png)
执行结果:
![](https://images2015.cnblogs.com/blog/28036/201510/28036-20151020082357130-2132553384.png)