1
我正在使用实体框架,我有一个场景,我传递了一个设计不正确的数据库,我无法对其进行任何修改,因此请和我一起裸照。实体框架在插入时自引用主键
当我插入新记录并自动生成自动标识值时。然后,我必须随后使用在初始插入时生成的相同ID更新同一个表中的列。我能看到这个成就的唯一方法是首先保存,获得新的PK,然后进行更新。但是,有没有其他方式可以在1个数据库调用中完成?我知道我可以很容易地用存储过程来完成这个任务,但是现在我没有这个选项。请参阅下面的表结构。
人 是PersonID INT(自动识别) 名字 姓氏 HeadOfHouseholdID此表
我不认为你可以通过一次调用来做到这一点(除非你可以使用存储的proc/insert触发器/等,你说你不能)。鉴于您需要设置字段,请确保将调用包装在事务中,以便在任何一个失败时不插入记录。开始事务 - >保存记录(插入) - >修改记录 - >保存记录(更新) - >提交事务 – AndrewP
没有必要存储该信息,简单规则将执行相同的操作:如果HeadOfHouseHoldID是空获取PersonID –
@SirRufo不是我的设计,根本不能修改数据库。他们在视图中使用该列,并且必须填充它才能工作。这是一个奇怪的场景。 – Scott