我首先使用EF代码,想创建这样的结构,例如:
基本上,这种关系是一对多的。一张发票只能属于客户或客户等
我想将所有发票存储在同一张表中,因为所有发票都使用同一模型,并且要使用流利的api创建关联表
下面这样的事对很多人来说都是
modelBuilder.Entity<Client>()
.HasMany(c => c.Invoice).WithMany(i => Clients)
.Map(t => t.MapLeftKey("ClientID")
.MapRightKey("InvoiceID")
.ToTable("ClientInvoices"));
modelBuilder.Entity<Customer>()
.HasMany(c => c.Invoice).WithMany(i => Customer)
.Map(t => t.MapLeftKey("CustomerID")
.MapRightKey("InvoiceID")
.ToTable("CustomerInvoices"));
我该怎么做一对多?如何在2个表中存储ClientInvoices和CustomerInvoices?
答案 0 :(得分:0)
相互声明两个具有导航属性的类。在其主键上用ForeignKey属性标记一个表(从属表)。 EF由此推断一对多:
public class Customer
{
public int Id { get; set; }
...
public List<Invoice> Invoices{ get; set; }
...
}
public class Invoice
{
public int Id { get; set; }
...
[ForeignKey("Customer")]
public int CustomerId { get; set; }
public Customer Customer { get; set; }
}