让我们说我有一个包含一些其他对象的IList的对象。是否可以有效地找到具有相同IList的对象?你会用什么HQL或ICriteria?我看不到使用SQL的简单方法。
感谢。
基督教
PS:
只是澄清一下。我有一个A类,其中包含:
public virtual string Text { get; set; }
B类包含:
public virtual IList<A> As { get; set; }
我想找到包含的每个对象:
a,a1,bla
按此顺序。逗号表示列表中的特定Text元素。
PPS:
使用ICriteria的find by example似乎不起作用:
NHibernateSession.Current.CreateCriteria(typeof(B)).Add(Example.Create(b)).List();
这里b是B的实例,其中列表包含A
的特定实例答案 0 :(得分:0)
我会使用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(谷歌)进行测试
有关NHibernate的更多帮助,我在Ayende's site上阅读了很多好东西。
答案 1 :(得分:0)
我认为你需要几件事。您需要确保已映射为list
,以便您可以使用索引来测试订单。你需要加入A
所以你可以做到
NHibernateSession.Current.CreateCriteria<B>()
.CreateAlias("As", "a")
.Add(Example.Create(b))