У меня есть класс с соответствующим отображением, как показано ниже:
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?