我首先使用Entity framwork 5代码,我有2个表:Customer和Dossier。我之间有两种类型为多对多的关系:
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; }
}
如何首先使用代码实现此目的?
由于
答案 0 :(得分: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来说是新手)。