我正在尝试构建迁移,但它在以下类中遇到了障碍:
public class Unit
{
public int UnitID { get; set; }
...
public Nullable<int> PreviousUnitID { get; set; }
[ForeignKey("PreviousUnitID")]
public Unit PreviousUnit { get; set; }
public Nullable<int> SubsequentUnitID { get; set; }
[ForeignKey("SubsequentUnitID")]
public Unit SubsequentUnit { get; set; }
}
“导航属性”无法添加到实体类型“单元”,因为实体类型“单元”上已存在具有相同名称的导航属性。
我假设这个稍微奇怪的导航是责备所以我遗漏了其余的课程。有谁知道我可以绕过这个问题的方法吗?
谢谢!
答案 0 :(得分:0)
使用虚拟而不是单位
public class Unit
{
public int UnitID { get; set; }
public Nullable<int> PreviousUnitID { get; set; }
public Nullable<int> SubsequentUnitID { get; set; }
public Virtual PreviousUnit { get; set; }
public Virtual SubsequentUnit { get; set; }
}
根据需要创建尽可能多的关系
答案 1 :(得分:0)
使用虚拟关键字:
public virtual Unit PreviousUnit { get; set; }
public virtual Unit SubsequentUnit { get; set; }
完整代码:
public class Unit
{
public int UnitID { get; set; }
...
public Nullable<int> PreviousUnitID { get; set; }
[ForeignKey("PreviousUnitID")]
public virtual Unit PreviousUnit { get; set; }
public Nullable<int> SubsequentUnitID { get; set; }
[ForeignKey("SubsequentUnitID")]
public virtual Unit SubsequentUnit { get; set; }
}
这也可以延迟加载单位。
编辑: 也许这也有帮助:https://github.com/aspnet/EntityFramework/issues/3911
答案 2 :(得分:0)
这是RC1的一个已知问题。
问题:
开发链: https://github.com/aspnet/EntityFramework/pull/4239
罗丹米勒于1月8日发表评论那将是#4069,它在我们的夜间版本中修复并将在RC2中发布。