如何在hibernate同一个表中创建多对多关系示例

时间:2013-06-04 09:22:06

标签: c# asp.net-mvc nhibernate nhibernate-mapping

如何在hibernate中创建多对多关系表示例

我有一个型号名称产品我想添加更多产品

想要创建额外的表格,其中有两个Fields producid和product2 M-to-Many

public class Product
{
    public virtual int Id { get; set; }
    public virtual IList<Product> ManyProduct { get; set; }
}

映射

public class ProductMap : ClassMap<Product>
{
    public ProductMap()
    {
        Id(x => x.Id);
        Map(x => x.ImageUrl);
        HasManyToMany(x => x.ManyProduct)
            .Cascade.All()
            .Table("ProductInProduct");
    }
}

1 个答案:

答案 0 :(得分:0)

手动指定键列

public class ProductMap : ClassMap<Product>
{
    public ProductMap()
    {
        Id(x => x.Id);
        Map(x => x.ImageUrl);
        HasManyToMany(x => x.ManyProduct)
            .ParentKeyColumn("product1_id")
            .ChildKeyColumn("product2_id")
            .Cascade.All()
            .Table("ProductInProduct");
    }
}