nhibernate - найти объект с тем же списком - PullRequest
0 голосов
/ 28 апреля 2011

Допустим, у меня есть объект, который содержит IList некоторых других объектов. Можно ли эффективно находить объекты с одним и тем же IList? Что бы вы использовали HQL или ICriteria. Я не вижу простого способа использования SQL.

Спасибо.

Christian

PS:

Просто чтобы уточнить. У меня есть класс А, который содержит:

public virtual string Text { get; set; }

Класс B содержит:

public virtual IList<A> As { get; set; }

Я хотел бы найти каждый объект, который содержит:

а, а1, бла

в этом порядке. Запятая указывает на конкретные элементы текста в списке As.

PPS:

Использование примера поиска ICriteria не работает:

NHibernateSession.Current.CreateCriteria(typeof(B)).Add(Example.Create(b)).List(); 

Здесь b - это экземпляр B, где список содержит конкретные экземпляры A

Ответы [ 2 ]

0 голосов
/ 28 апреля 2011

Я думаю, вам нужно несколько вещей. Вам нужно убедиться, что вы сопоставили As как list, чтобы иметь индекс, по которому вы можете проверить ордер. Вам нужно присоединиться к A

Так что вы можете сделать

NHibernateSession.Current.CreateCriteria<B>()
    .CreateAlias("As", "a")
    .Add(Example.Create(b))
0 голосов
/ 28 апреля 2011

Я бы использовал Linq to NHibernate .У меня был успех с этим.

Оттуда вы можете сделать соединение.Вы можете присоединиться к нескольким свойствам, если вам нужно.Это может быть не идеальный пример, потому что я только что придумал, но это должно дать вам идею.

var query =
    from c in customers
    join e in employees
        on new { c.Id, c.Address1 } equals new { e.Id, e.Address1 }
    select new
    {
        c.Id,
        c.Name,
        c.Address1,
        e.StartDate
    };

Вы можете использовать LinqPad (google it), чтобы проверить

.помогите с NHibernate, я прочитал много хороших вещей на сайте Айенде .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...