【发布时间】:2015-09-01 11:14:51
【问题描述】:
我有以下课程(为简洁起见);
public class InsurancePolicy : AuditableEntity<int>
{
[Column("id"), Key]
public override int ID { get; set; }
[Column("deviceid"), ForeignKey("Device")]
public int DeviceId { get; set; }
public virtual Device Device { get; set; }
}
public partial class Device : AuditableEntity<int>
{
[Column("deviceid"), Key]
public override int ID { get; set; }
[ForeignKey("Policy")]
public int PolicyId { get; set; }
public virtual InsurancePolicy Policy { get; set; }
[ForeignKey("Vehicle")]
public int VehicleId { get; set; }
public virtual Vehicle Vehicle { get; set; }
}
public partial class Vehicle : AuditableEntity<int>
{
[Column("id"), Key]
public override int ID { get; set; }
[Column("deviceid"), ForeignKey("Device")]
public int DeviceId { get; set; }
public virtual Device Device { get; set; }
public virtual List<InsurancePolicyVehicle> InsurancePolicyVehicles { get; set; }
}
现在,当我尝试运行 update-database 命令时,出现此错误:
Device_Policy_Target: : 多重性在关系“Device_Policy”中的角色“Device_Policy_Target”中无效。因为从属角色属性不是关键属性,所以从属角色的多重性的上限必须是“*”。
Device_Vehicle_Target::多重性在关系“Device_Vehicle”中的角色“Device_Vehicle_Target”中无效。由于 Dependent Role 属性不是关键属性,因此 Dependent Role 多重性的上限必须为“*”。
谁能告诉我这里做错了什么?
【问题讨论】:
-
我觉得类之间有交叉关系。 'InsurancePolicy'类同时引用'Device'类,它也引用回来。我认为这是不可接受的。请优化表关系
标签: c# entity-framework