实体框架和UPDATE CASCADE

Dav*_*iel 5 entity-framework cascade foreign-key-relationship navigation-properties

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

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

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

谢谢!

Shi*_*iji 2

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

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

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