我有一个遗留数据库设计,我正在尝试使用 EF 4 解决。本质上,我有两个相互引用的表,在尝试添加新条目时会导致问题。
我的结构是这样的:
CREATE TABLE [dbo].[Account] (
[AccountId] INT IDENTITY (1, 1) NOT NULL,
[PrimaryPersonId] INT NULL,
[other columns])
CREATE TABLE [dbo].[Person] (
[PersonId] INT IDENTITY (1, 1) NOT NULL,
[AccountId] INT NOT NULL,
[other columns])
Person 具有 Account (AccountId) 的外键,Account 具有 Person (PrimaryPersonId) 的外键。创建新帐户和人员时,这显然是一个问题。目前的解决方案是在 Person 表上使用插入触发器,在创建人员时使用新的 PrimaryPersonId 更新 Account 表。
我想摆脱对触发器的需求,并尽可能将此代码带入模型中,这样就不会发生“魔术”。EF 4 有没有好的方法来做到这一点?