带未映射表的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 ?
作为另一种选择,您可以不只是添加一个OrderCount
属性到您的Customer类,这样您就不需要连接到其他DB。
你所做的任何连接跨DB或连接到未映射的类感觉有点错误。