1

我有一个遗留数据库设计,我正在尝试使用 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 有没有好的方法来做到这一点?

4

1 回答 1

0

我建议将插入发生在代码中。构建一个接受人员对象作为参数的帐户方法)以将人员对象添加到帐户表中。你甚至可以做得更大,在任何处理插入该表的东西上包装一个接口,这样你就可以确保它总是发生。

布莱克·罗杰斯 Onyxtek 软件解决方案有限责任公司

于 2011-04-22T14:01:48.560 回答