2011-07-13 8 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 

Criteria APIと同等のものは何ですか?

答えて

0

別のオプションとして、OrderCountプロパティをCustomerクラスに追加するだけでなく、他のDBとの結合を必要としないようにすることもできます。

DBをまたいで結合したり、マップされていないクラスに結合したりすることは、少し間違っているようです。

+0

私は推測しますが、プロパティとしてintのリストを作成するオプションが存在するので、それを照会する方法があるはずです。 – Shagglez

関連する問題