API критериев NHibernate с не отображенными таблицами - PullRequest
1 голос
/ 13 июля 2011

У меня есть класс с соответствующим отображением, как показано ниже:

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 голосов
/ 13 июля 2011

В качестве другого варианта вы можете не просто добавить свойство OrderCount в свой класс Customer, чтобы вам не требовалось объединение с другой БД.

Все, что вы делаете, присоединяет кросс-базу данных или присоединяет к несопоставленным классам, чувствует себя немного неправильно.

...