【问题标题】:Entity framework and UPDATE CASCADE实体框架和 UPDATE CASCADE
【发布时间】:2010-11-09 23:30:19
【问题描述】:

这里有点沮丧。我正在尝试找到一种方法来支持与实体框架进行更新级联,并且似乎没有内置的方法。网上的研究基本上表明每个人都说你永远不应该更改主键值,但在某些有效情况下你需要(例如,UPC 值作为主键,UPC 条形码现在变得更大,这意味着更新现有的并保持适当的外键关系)。

一种方法显然是利用 SavingChanges 事件,查看主键字段是否发生变化,如果发生变化,则遍历导航属性并以这种方式更新子表。

这在理论上是可行的。但这听起来很麻烦。有人有更好的主意吗?无法相信比尔会因为大多数人不这样做而将这些东西排除在框架之外。 SQL Server 仍然支持它...

谢谢!

【问题讨论】:

标签: entity-framework foreign-key-relationship cascade navigation-properties


【解决方案1】:

您不能直接通过 EF 更改主键。问题是 EF 在主键 = x 的地方进行了更改。所以你不能改变 x。

您可以从 EF 执行一个存储过程来更新主键。

在您使用条形码的情况下,我将有一个主键,它是一个自动递增的数字,然后是一个带有唯一索引的不同字段的条形码。

【讨论】:

  • 谢谢。条码就是一个例子,我可以想到很多场景(在现有系统中)条码会成为主键。在 EF 进入城镇之前,这是完全合理的。我认为目前唯一的方法是让外键自己处理级联,即使这意味着我必须在保存后刷新实体以确保我在内存中有正确的数据。
猜你喜欢
  • 2022-01-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-10
  • 2011-10-11
  • 2020-08-12
  • 2011-08-20
  • 2011-10-25
相关资源
最近更新 更多