带未映射表的NHibernate标准API

本文关键字:NHibernate 标准 API 映射 | 更新日期: 2023-09-27 18:02:02

我有一个类,对应的映射如下:

public class Customer
{
    public virtual int CustomerId { get; private set; }
    //...
    public virtual List<int> Orders { get; set; }
}
public class CustomerMap : ClassMap<Customer>
{
    public CustomerMap()
    {
        Id(x => x.PatientId)
            .GeneratedBy.Native();
        HasMany(x => x.Orders)
            .Element("OrderId", t => t.Type<int>())
            .Table("CustomerOrder")
            .KeyColumn("CustomerId")
            .ForeignKeyConstraintName("FK_Customer_Order")
            .Cascade.All();
    }
}

假设类Order在另一个数据库中,因此我不能在此程序集中映射它。(我不确定这是最好的方法,请随意评论映射。)

所以我希望能够找到超过N个订单的客户,SQL查询看起来像这样:

select * from Customer c where
    (select count(*) from orders where CutsomerId = c.CustomerId) > N

什么是等效的标准API ?

带未映射表的NHibernate标准API

作为另一种选择,您可以不只是添加一个OrderCount属性到您的Customer类,这样您就不需要连接到其他DB。

你所做的任何连接跨DB或连接到未映射的类感觉有点错误。