1

在 SQLServer 上:

表:FinanceiroLancemento

Id 名称 IdFinanceiroLancamentoCaixa IdFinanceiroLancamentoBanco

表:FinanceiroLancementoCaixa

身份证钱

在 EF - “FinanceiroLancamento”的代码优先:

        Property(p => p.Name)
            .IsRequired();

        HasOptional(p => p.FinanceiroLancamentoCaixa)
            .WithMany()
            .HasForeignKey(p => p.IdFinanceiroLancamentoCaixa);

在 EF - “FinanceiroLancamentoCaixa”的代码优先:

        Property(p => p.Money)
            .HasPrecision(15, 2)
            .IsRequired();

我的 SQLServer 关系:

更改表 FinanceiroLancamento 添加约束 [FinanceiroLancamento_003_FKEY] 外键 ([IdFinanceiroLancamentoCaixa]) 参考 FinanceiroLancamentoCaixa([Id]) ON DELETE CASCADE ON UPDATE CASCADE;

所以在源代码中我可以这样做:

var money = financeiroLancamento.FinanceiroLancamentoCaixa.Money:

我的关系中的问题是,当我删除“FinanceiroLancamento”时,它并没有删除“FinanceiroLancamentoCaixa”。但如果我删除“FinanceiroLancamentoCaixa”,它就会删除“FinanceiroLancamento”。

我想要相反,我想删除“FinanceiroLancamento”并删除“FinanceiroLancamentoCaixa”。我该怎么做?

(我想继续使用 EF 从 FinanceiroLancamento 导航到 FinanceiroLancamentoCaixa)

谢谢。

此致,

威尔顿·鲁法托·沃拉斯

4

1 回答 1

0

这是一个非常奇怪的名字。我不太适合 EF,但我认为您希望每个 FinanceiroLancamento 记录有多个(或零个或一个)FinanceiroLancamentoCaixa 记录。在 SQL 中执行此操作的正常方法是在两个表中都有一个 Id 列,在 FinanceiroLancamentoCaixa 表中添加一个“IdFinanceiroLancamento”列。

然后您将外键定义为

ALTER TABLE FinanceiroLancamentoCaixa
ADD CONSTRAINT FK_FinanceiroLancamentoCaixa_FinanceiroLancamento
FOREIGN KEY (IdFinanceiroLancamento) 
REFERENCES FinanceiroLancamento(Id) 
ON DELETE CASCADE
ON UPDATE CASCADE;

然后,当您删除 FinanceiroLancamento 记录时,级联也会删除 FinanceiroLancamentoCaixa 记录。

于 2013-06-10T15:04:23.930 回答