处理EF 4中的循环引用

时间:2011-04-22 13:54:57

标签: sql entity-framework-4 cyclic-reference

我有一个遗留数据库设计,我正在尝试使用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有一个很好的方法吗?

1 个答案:

答案 0 :(得分:0)

我建议移动到代码中插入。构建一个接受person对象作为参数的帐户方法,将person对象添加到帐户表中。您甚至可以更大,并在处理插入该表的任何内容上包装一个接口,以便您可以确保它始终发生。

布莱克罗杰斯 Onyxtek Software Solutions, LLC