好吧,我找不到一個很好的例子,所以我可以更好地瞭解如何使用分離標準(假設這就是我想要的首先)。Nhibernate - 卡住與分離標準(asp.net mvc 1與nhibernate 2)c#
我有2個表格。 Placement and PlacementSupervisor
我的PlacementSupervisor表有一個PlacementID的FK,它涉及到Placement.PlacementID - 儘管我的nhibernate模型類有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是一個字符串。 其次我不明白如何實現我正在嘗試做的事情,只是嘗試各種組合的投影,屬性別名和子查詢選項..我不明白我應該如何加入到另一個表/實體當FK鍵位於第二個表中時。
有人可以指出我在正確的方向。從數據的角度來看,這似乎是一件容易的事情,希望我只是錯過了一些明顯的東西!
你可以請你展示你的數據庫模型,對象和映射嗎? – Sly 2011-02-25 07:52:20