加入流利的nhibernate

时间:2009-05-04 15:19:58

标签: nhibernate

我正在使用流利的nhibernate。

示例:

我有3张表,即

CUSTOMER CustomerId pk 客户名称

PRODUCT ProductId pk 产品名称

Cust_Product cust_prodId pk ProductId fk CustomerId fk

现在,我想显示customername,productnae

那么,我该如何编写相同的映射类。

我想用

session.CreateCriteria(typeof运算( “类名”))。表() 像这样。我该怎么做..?

1 个答案:

答案 0 :(得分:0)

如果您正在寻找有关如何执行此操作的完整教程,我建议使用FNH wiki或通过Google找到的众多博客帖子之一。

然而,你正试图在这里实现多对多的关系,而这似乎会让很多人失望。这是一个粗略的指南:

在您的Customer类中,您需要一个类似的集合:

IList<Product> Products { get; private set; }

同样,在您的产品类上:

IList<Customers> Customers { get; private set; }

您使用HasManyToMany函数启动多对多地图:

public class CustomerMap : ClassMap<Customer>
{
    public CustomerMap()
    {
        // other mappings

        HasManyToMany<Product>(x => x.Products)
            .WithTableName("Cust_Product")  // Specifies the join table name
            .WithParentKeyColumn("CustomerId") // Specifies the key joining back to this table (defaults to [class]_id, Customer_id in this case)
            .WithChildKeyColumn("ProductId")
            .FetchType.Join(); // Instructs NHibernate to use a join instead of sequential select
    }
}

然后重复关系另一端的过程(Product类的Customers属性)。