流利的NHibernate - 多对一关系

时间:2010-07-21 05:53:33

标签: nhibernate fluent-nhibernate orm

有一个产品类别的表格。许多产品都有一个类别。那么,在产品映射中,如何编写正确的代码以与其类别进行映射?

在产品类中:

  • 是这样的:引用(x => x.Category).Column ........

2 个答案:

答案 0 :(得分:1)

如果您的意思是某个类别包含许多产品,您需要这样的内容:

public class ProductMap : ClassMap<Product>
{
    public ProductMap ()
    {
        Table("products");
        Id(x => x.Id);
        Map(x => x.Name)
        References(x => x.Category).Column("CategoryId");
    }
}


public class CategoryMap : ClassMap<Category>
{
    public CategoryMap()
    {
        Table("categories");
        Id(x => x.Id);
        Map(x => x.Name);
        HasMany(x => x.Products).LazyLoad().Inverse().Cascade.All();
    }
}

答案 1 :(得分:0)

如果这是从产品到类别的多对一关系,使得产品最多只有一个类别,则映射为:

References(x => x.Category, "CategoryId");

假设CategoryId是Products表中的外键。但是,您的问题表明“许多产品都有一个类别。”所以不清楚这种关系是什么。