到这里有点郁闷。我正在尝试找到一种方法来支持 Entity Framework 的更新级联,但似乎没有内置方法。网上的研究基本上表明每个人都说无论如何你都不应该更改主键值,但是在某些情况下你需要这样做(例如,UPC 值作为主键,并且 UPC 条形码现在变得越来越大,这意味着更新现有的并保持适当的外键关系)。
一种方法显然是利用 SavingChanges 事件,查看主键字段是否正在更改,如果是,则遍历导航属性并以这种方式更新子表。
这在理论上是可行的。但这听起来很麻烦。有人有更好的主意吗?无法相信比尔会因为大多数人不这样做而将这些东西排除在框架之外。 SQL Server 仍然支持它...
谢谢!
最佳答案
您不能直接通过 EF 更改主键。问题是 EF 在主键 = x 处进行了更改。所以你不能改变 x。
您可以从 EF 执行一个存储过程来更新主键。
在您使用条形码的情况下,我将有一个主键,它是一个自动递增数字,然后一个条形码作为具有唯一索引的不同字段。
关于entity-framework - Entity Framework 和更新级联,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4139802/