我正在使用流利的nhibernate。
示例:
我有3张表,即CUSTOMER CustomerId pk 客户名称
PRODUCT ProductId pk 产品名称
Cust_Product cust_prodId pk ProductId fk CustomerId fk
现在,我想显示customername,productnae
那么,我该如何编写相同的映射类。
我想用
session.CreateCriteria(typeof运算( “类名”))。表() 像这样。我该怎么做..?
答案 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属性)。