Linq To Nhibernate中的子查询问题

时间:2011-08-14 12:23:06

标签: c# linq nhibernate subquery linq-to-nhibernate

我有两个班级

按名称:人和资产

按关系类型:一对多(一个人多资产)

我使用linq.Nhibernate 2.2

通过子查询编写了一个查询
var sub_q = from Asset a in SessionInstance.Linq<Asset>()                        
            select a.Person.Id;            

var q = from Person p in SessionInstance.Linq<Person>()
        where(sub_q.Contains(p.Id))
        select p;                

List<Person> list = q.ToList<Person>();

我在执行时看到一个异常 异常消息是:代码无法访问

当然以下查询是真的

var sub_q = from Asset a in SessionInstance.Linq<Asset>()                        
            select a.Person.Id;
List<Person> personList = sub_qsub_q.ToList<Person>;
var q = from Person p in SessionInstance.Linq<Person>()
        where (personList.Contains(p.Id))
        select p;                

List<Person> list = q.ToList<Person>();

但对性能不利

1 个答案:

答案 0 :(得分:0)

只做

var q= (from Asset a in SessionInstance.Linq<Asset>()                        
        select a.Person).ToList();