我想更新中间表的主键。 This post建议使用另一个主键并且不要更改它,但我们在其他非EF项目中使用我们的表格,我没有设计它们而且我是无法改变它们。我还有其他选择吗?什么?甚至删除旧记录并插入新记录。我只是不知道如何检索旧值。
这是我的班级:
public class ZChangeUnits : User
{
[Key]
[Column(TypeName = "VARCHAR", Order = 0), StringLength(4)]
public string CCode1 { get; set; }
[ForeignKey("CCode1")]
public virtual ZUnits ZUnits1 { get; set; }
[Key]
[Column(TypeName = "VARCHAR", Order = 1), StringLength(4)]
public string CCode2 { get; set; }
[ForeignKey("CCode2")]
public virtual ZUnits ZUnits2 { get; set; }
[Column(TypeName = "NUMERIC")]
[DecimalPrecision(18, 5)]
public decimal NZarib { get; set; }
}
更新
我已经发布了下面的架构,左表用于单位转换。这实际上是this answer中建议的方法。
我无法想到实现这一点的任何其他方式。我是否应该更新我的桌面设计或一些EF代码才能完成这项工作。欢迎任何帮助和解决方案。 :)