【发布时间】:2011-02-25 05:51:50
【问题描述】:
好的,所以我找不到一个很好的例子,所以我可以更好地理解如何使用分离的标准(假设这是我首先想要使用的)。
我有 2 张桌子。 Placement和PlacementSupervisor
我的 PlacementSupervisor 表有一个 PlacementID 的 FK,它与 Placement.PlacementID 相关——尽管我的休眠模型类有 PlacementSupervisor 。展示位置(而不是专门指定展示位置 ID 的属性 - 不确定这是否重要)。
我想要做的是 - 如果值传递给主管 ID,我想限制具有该主管 ID 的展示位置。
试过了:
ICriteria query = m_PlacementRepository.QueryAlias("p")
....
if (criteria.SupervisorId > 0 && !string.IsNullOrEmpty(criteria.SupervisorTypeId))
{
DetachedCriteria entityQuery = DetachedCriteria.For<PlacementSupervisor>("sup")
.Add(Restrictions.And(
Restrictions.Eq("sup.supervisorId", criteria.SupervisorId),
Restrictions.Eq("sup.supervisorTypeId", criteria.SupervisorTypeId)
))
.SetProjection(Projections.ProjectionList()
.AddPropertyAlias("Placement.PlacementId", "PlacementId")
);
query.Add(Subqueries.PropertyIn("p.PlacementId", entityQuery));
}
这只是给了我错误: 找不到匹配的条件信息提供程序:(sup.supervisorId = 5 和 sup.supervisorTypeId = U)
首先 supervisorTypeId 是一个字符串。 其次,我不明白如何实现我想要做的,只是尝试了各种投影组合、属性别名和子查询选项......因为我不明白我应该如何加入另一个表/entity 当 FK 键位于第二个表中时。
谁能指出我正确的方向。从数据的角度来看,这似乎是一件很容易的事情,希望我只是遗漏了一些明显的东西!
【问题讨论】:
-
能否请您展示您的数据库模型、对象和映射?
标签: c# nhibernate nhibernate-criteria