我有一个名为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?
答案 0 :(得分:0)
有几个解决方案,其中一个是为BankId字段使用uniqueidentifier数据类型(我假设您使用的是SQL Server)。通过这种方式,可以使用Guid.NewGuid()在C#中生成Guid,并在保存任何记录之前将其用于ID。
尽管如此,更好的解决方案可能是缓存任何更改并以正确的顺序保存。首先保存父项,然后保存子项。
答案 1 :(得分:0)
不确定如何将记录插入数据库。一种解决方案是使用“输出”。当您插入BankA时,您可以获得带有inserted.BankID
输出的id