0

我首先使用实体​​框架 5 代码,我有 2 个表:客户和档案。我在它们之间有 2 个多对多类型的关系:

public class Customer {
    public int Id { get; set; }
    public string Name { get; set; }

    public List<Dossier> Debtors { get; set; }
    public List<Dossier> Creditors { get; set; }
}

public class Dossier {
    public int Id { get; set; }
    public string Name { get; set; }

    public List<Customer> Debtors { get; set; }
    public List<Customer> Creditors { get; set; }
}

我怎样才能首先使用代码来实现这一点?

谢谢

4

1 回答 1

2

我认为您可以使用两个关系表来实现这一点,一个用于债务人,一个用于债权人。

modelBuilder.Entity<Customer>().HasMany(c => c.Debtors).WithMany(d => d.Debtors).Map(m => m.MapLeftKey("CustomerId").MapRightKey("DossierId").ToTable("DebtorCustomerDossierRel"));

modelBuilder.Entity<Customer>().HasMany(c => c.Creditors).WithMany(d => d.Creditors).Map(m => m.MapLeftKey("CustomerId").MapRightKey("DossierId").ToTable("CreditorCustomerDossierRel"));

我还没有尝试过这段代码,但它应该非常接近。

这将在您的 DbContext.OnModelCreating 方法中(对于 Code First 来说是新的)。

于 2013-06-25T17:32:21.913 回答