带有未映射表的NHibernate Criteria API

时间:2011-07-13 10:25:03

标签: c# nhibernate criteria-api

我有一个具有相应映射的类,如下所示:

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

什么是Criteria API等价物?

1 个答案:

答案 0 :(得分:0)

另一种选择是,您不能只为您的Customer类添加OrderCount属性,因此您不需要连接到其他数据库。

你所做的任何加入跨数据库或连接到未映射的类的事情都会有点不对。