在掌握之前保存细节?

时间:2015-04-07 23:33:07

标签: c# sql logic

我有一个名为Bank的表,用于存储名称,账户,子公司/分支机构等银行信息。对于进入子公司/分支机构,我使用相同的表,包括自我引用的字段ParentId,IsSubsidiary,IsBranch。表结构如下:

Field            Type
---------------------------
BankId           int (PK)
Name             nvarchar(100)
AccountNo        nvarchar(50)
ParentId         int (self-referencing key)
IsSubsidiary     bit
IsBranch         bit

所以我正在制作一个C#应用程序来捕获这些信息,我希望重用相同的表单来捕获辅助数据。 例如:

  

输入父母:银行A
      进入银行A的分行:银行B和银行C

问题是在输入银行A的数据时,用户想要输入它的分支(银行B和银行C)的详细信息,那么当用户尚未保存银行A数据时,如何生成ParentId?

2 个答案:

答案 0 :(得分:0)

有几个解决方案,其中一个是为BankId字段使用uniqueidentifier数据类型(我假设您使用的是SQL Server)。通过这种方式,可以使用Guid.NewGuid()在C#中生成Guid,并在保存任何记录之前将其用于ID。

尽管如此,更好的解决方案可能是缓存任何更改并以正确的顺序保存。首先保存父项,然后保存子项。

答案 1 :(得分:0)

不确定如何将记录插入数据库。一种解决方案是使用“输出”。当您插入BankA时,您可以获得带有inserted.BankID

输出的id