5

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

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

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

谢谢!

4

1 回答 1

2

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

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

在您使用条形码的情况下,我将有一个主键,它是一个自动增量编号,然后是一个条形码作为具有唯一索引的不同字段。

于 2010-11-10T16:54:39.430 回答