2017-02-09 26 views
0

我的班级是怎么同一类的实体framefork地图两个列表属性6

public class DocumentSale 
{ 
    public List<DocumentSale> FollowDocuments {get; set;} 
    public List<DocumentSale> BaseDocuments {get; set;} 
} 

如何将它映射在实体框架?我得到一个错误

“FK_dbo.DocumentSaleDocumentSales_public.saledocument_DocumentSa” 的关系 “DocumentSaleDocumentSales” 已经存在

我的数据库是Postgres的9.4.9

+0

此外类DocumentSale具有id字段,标记为[键] –

+0

必须使用InverseProperty –

回答

0

这就是我需要的:

public class DocumentSale 
{ 
    public List<DocumentSale> FollowDocuments {get; set;} 
    public List<DocumentSale> BaseDocuments {get; set;} 
} 

    modelBuilder.Entity<DocumentSale>() 
     .HasMany<DocumentSale>(c => c.baseDocuments) 
     .WithMany(c => c.followUpDocuments) 
     .Map(
     cs => 
      { 
       cs.MapLeftKey("followdocid"); 
       cs.MapRightKey("basedocid"); 
       cs.ToTable("basefollow"); 
      } 
     ); 
0

你可以尝试这样的事情

public class DocumentSale 
{ 
    [Key] 
    public int Id { get; set; } 
    public int? FollowDocumentId { get; set; } 
    public int? BaseDocumentId { get; set; } 

    public virtual DocumentSale FollowDocument { get; set; } 
    public virtual DocumentSale BaseDocument { get; set; } 

    [ForeignKey(nameof(FollowDocumentId))] 
    public virtual List<DocumentSale> FollowDocuments { get; set; } 
    [ForeignKey(nameof(BaseDocumentId))] 
    public virtual List<DocumentSale> BaseDocuments { get; set; } 
} 
+0

消息=模型生成期间检测到一个或多个验证错误: –

+0

DocumentSale_baseDocuments_Source_DocumentSale_baseDocuments_Target:类型的所有属性的在从属作用的参考约束必须与主体角色中相应的属性类型相同。实体“DocumentSale”上的属性“BaseDocumentId”的类型与参照约束“DocumentSale_baseDocuments”中实体“DocumentSale”上的属性“id”的类型不匹配。 –

+0

DocumentSale_followUpDocuments_Source_DocumentSale_followUpDocuments_Target::参照约束的从属角色中的所有属性的类型必须与主体角色中相应的属性类型相同。实体'DocumentSale'上属性'FollowDocumentId'的类型与参照约束'DocumentSale_followUpDocuments'中实体'DocumentSale'上的属性'id'的类型不匹配。 –

相关问题