使用代码优先 EF4(使用 CTP5),我可以添加一个导航属性以及外键,它会尊重命名,并且只将外键添加到表中一次。如果我然后去添加第二个相同类型的属性,它会在表格上将其分解为 4 列,而不是只有两列。
示例代码:
使用此模型,我将一个名为 PressTypeID 的属性添加到 PressType 的 AdapterFrameCapability 表中。
public class AdapterFrameCapability
{
[Key]
public int AdapterFrameCapabilityID { get; set; }
[Required]
public int PressTypeID { get; set; }
public virtual PressType PressType { get; set; }
}
这是我要建模的设置,但它导致在表中创建 4 列,FromPressTypeID、FromPressTypeFromPressTypeID、ToPressTypeID 和 ToPressTypePressTypeID 各一列。理想情况下,我只想要 FromPressTypeID 和 ToPressTypeID 的列。我在这里做错了什么?
public class AdapterFrameCapability
{
[Key]
public int AdapterFrameCapabilityID { get; set; }
[Required]
public int FromPressTypeID { get; set; }
[Display(Name = "From Press Type")]
public virtual PressType FromPressType { get; set; }
[Required]
public int ToPressTypeID { get; set; }
[Display(Name = "To Press Type")]
public virtual PressType ToPressType { get; set; }
}