首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >具有私有支持字段的nhibernate集合查询

具有私有支持字段的nhibernate集合查询
EN

Stack Overflow用户
提问于 2011-09-15 20:57:10
回答 1查看 401关注 0票数 0

我在数据库中对学生和教授(_students_selected)之间的多对多关系进行了建模(使用桥接表),在我的实体中,我将其建模为一对多关系,即一个教授有一个学生。

代码语言:javascript
复制
 HasManyToMany<Student>(Reveal.Member<Professor>("_students"))
   .Table("_students_selected").ChildKeyColumn("student_key").ParentKeyColumn("professor_key");

public class Professor    
{
        private IList<Students> _students;
        public virtual Student Student
        {
            get { return _students.FirstOrDefault(); }
        }
}

上面的方法在获取数据时有效,但是在查询教授时,我无法为学生添加where条件,因为实际数据被映射到私有支持字段_students。如何查询?下面的代码不起作用。

代码语言:javascript
复制
_unitOfWork.Session.QueryOver<Professor>().Where(i => i.Student.Id == 24).List();
EN

回答 1

Stack Overflow用户

发布于 2011-09-16 15:09:48

NHibernate不能将属性中的C#代码转换为SQL,它只能处理映射的属性。要么在语句中使用集合(当然,它需要是公共/内部的),要么在内存中过滤结果(但要注意select n+1问题)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7431222

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档