API критериев NHibernate с несопоставленными таблицами

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

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?


person Shagglez    schedule 13.07.2011    source источник


Ответы (1)


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

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

person Mark Perry    schedule 13.07.2011
comment
Думаю, да, но поскольку существует возможность создать список целых чисел в качестве свойства, должен быть способ запросить его. - person Shagglez; 13.07.2011