我有一个遗留数据库设计,我正在尝试使用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表上使用insert触发器,在创建人员时使用新的PrimaryPersonId更新Account表。
我想摆脱需要触发器并尽可能将此代码带入模型中,以免发生“魔术”。使用EF 4有一个很好的方法吗?
答案 0 :(得分:0)
我建议移动到代码中插入。构建一个接受person对象作为参数的帐户方法,将person对象添加到帐户表中。您甚至可以更大,并在处理插入该表的任何内容上包装一个接口,以便您可以确保它始终发生。
布莱克罗杰斯 Onyxtek Software Solutions, LLC