嵌套识别关系/复合主键

时间:2015-09-16 17:30:02

标签: c# entity-framework fluent

我正在尝试使用复合主键嵌套一个>许多识别关系来解决问题。我有以下代码按预期工作:

public class Parent 
{
     public virtual ICollection<UnnamedLocation> UnnamedLocations { get; set; }
}

public class UnnamedLocation : Location {
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public int UnnamedLocationID { get; set; }
    public int ParentID { get; set; }
    public string Description { get; set; }
}

与以下建立的识别关系:

modelBuilder.Entity<UnnamedLocation>()
            .HasKey(m => new {m.UnnamedLocationID, m.ParentID})

问题是我想在&#39; UnnamedLocation&#39;中添加一组坐标。对象:

public virtual ICollection<Coordinate> Coordinates {get; set;}

然后我会计划添加相同类型的识别关系,以便EF能够正确处理孤立记录:

modelBuilder.Entity<Coordinate>()
            .HasKey(m => new {m.CoordinateID, m.UnnamedLocationID})

问题是(我认为我明白了)EF现在认为UnnamedLocation的PK是UnnamedLocationIDParentID的组合,并会抛出如下的异常:

关系约束中的从属角色和主要角色中的属性数必须相同。

0 个答案:

没有答案