今天Insus.NET分享经验,在开发时,我们是怎样存储一对多关系的数据。怎样说呢,你会遇上主表记录与子表记录同时存储,但子表与主表有主外键关联。
下面创建两张表,它们有关联,主键外键。

一般情况之下,你先添加主表TableA的记录,得到添加的主键值之后,再添加TableB的记录。或者是同时提交,但需要程序连2次数据库,得到主键值,再插入TableB的数据。
下面Insus.NET的做法是一次性提交至数据库中。
先数据库中,创建的自定义表类型,这个类型基本上就是TableB的结构:

创建一个存储过程,对主表TableA数据插入,并返回主键值。

下面的存储过程,才是给程序引用:

在程序中,我们可以创建一个类别:

前端使用这个类别:

执行结果:
