假设我有 4 个表定义如下:
项目:[Project_Id,Project_Name]
供应商:[供应商 ID,供应商名称]
Project_Vendors : [ Project_Vendor_Id, Vendor_Id, Project_Id ]
付款:[ Payment_Id,Project_Vendor_Id,Payment_Amount ]
关系应如下所示:
- 一个项目可以关联多个供应商
- 一个供应商可以属于许多项目
- 可以向一个项目的许多供应商支付许多款项(因此使付款独一无二的是一个项目和一个供应商)
我可以使用 ProjectVendors 查找表轻松映射 Project 和 Vendor 对象及其关系,其中包含以下内容:
public class ProjectMapping : ClassMap<Project>
{
public ProjectMapping()
{
Table("Projects");
Id(x => x.Id).Column("Project_Id").GeneratedBy.TriggerIdentity();
HasManyToMany(x => x.Vendors).Table("Project_Vendors")
.ParentKeyColumn("Project_Id")
.ChildKeyColumn("Vendor_Id")
.Cascade.AllDeleteOrphan();
}
}
我的问题是,如果我的类定义如下:
public class Payment
{
public virtual int? Id { get; set; }
public virtual Project Project { get; set; }
public virtual Vendor Vendor { get; set; }
public virtual double Amount { get; set; }
}
public class Project
{
public virtual int? Id { get; set; }
public virtual string Name { get; set; }
public virtual List<Vendor> Vendors { get; set; }
public virtual List<Payment> VendorPayments { get; set; }
}
如何使用查找表 Project_Vendors 映射我的 Project 和 Payment 对象?