2011-07-13 91 views
1

我有如下相應的映射的類:NHibernate的標準與表未映射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(); 
    } 
} 

假設類訂單是在另一個數據庫中,所以無法在該組件將它映射。 (我不確定這是做這件事的最好方法,請隨時對映射發表評論。)

所以我想能夠找到超過N個訂單的客戶,SQL查詢會看起來像這樣:

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

會是怎樣的標準API相當於?

回答

0

作爲另一種選擇,您可以不只是將OrderCount屬性添加到您的客戶類,因此您不需要加入其他數據庫。

任何你所做的連接跨數據庫或連接到未映射的類感覺有點不對。

+0

我想是的,但由於選項存在創建一個int作爲屬性列表,應該有一種方法來查詢它。 – Shagglez