C# EF6 将值更新到不相关的表

Posted

技术标签:

【中文标题】C# EF6 将值更新到不相关的表【英文标题】:C# EF6 Update Values to non related tables 【发布时间】:2017-04-10 07:04:27 【问题描述】:

我有一个关于更新不相关表的问题。

我有一个 TableA,它有:

Id     Code      Value(Int)
1      2201      3
2      2202      5

还有一个 TableB,它有:

Id     Code      Value(Int)
1      2201      2
2      2202      1 

我需要使用 TableA 和 TableB 中的值总和来更新与 TableA 和 TableB 都不相关的表 (TableC)。

表B:

Code       SumValues
2201       5
2202       6

每次我向 TableA 和 TableB 添加值时,我都需要更新 TableC: Sum(表C中的现有值+表A中添加的当前值+表B中添加的当前值)

这可能吗? 我需要什么样的表之间的关系? 如何做到这一点?

谢谢。

【问题讨论】:

有很多方法可以实现这一点。你必须给出一些方向,最好是展示你已经尝试过的东西。 很抱歉,但我不知道如何实现这一点,所以我还没有尝试任何东西......我不知道,没有方向,什么都没有...... 【参考方案1】:

你的 tableC 应该是这样的:

Id     Code     SumValues

1       2201       5
2       2202       6

当您更新 TableA 和 TableB 时,您必须手动将值插入 TableC。唯一的关系是 FKCode 字段的关系。希望您有另一个表来维护 Codes。就像一个Codes 的主表。

【讨论】:

是的,我有一个包含Code 的表。 “您必须手动插入...”是什么意思?你的意思是字面上的手工吗?更新 TableA 和 TableB 时无法插入值? 是的,我的意思是这样。如果你需要自动做,那么你必须在数据库端写一个trigger

以上是关于C# EF6 将值更新到不相关的表的主要内容,如果未能解决你的问题,请参考以下文章

将值、NULL 或不更新此列传递给 Oracle 表更新存储过程?

在 Oracle 中,我可以执行“将值插入或更新到表中”吗

用户在更新之前突然收到 ORA-01013 [重复]

将值插入到存在于多个数据库中的表中

SQL 将值更改为大写或小写

c# 将值转发到其他形式的问题