【发布时间】:2011-01-21 04:06:06
【问题描述】:
我一直在谷歌上筛选页面寻找答案,但无济于事,但我认为我只是用错了措辞。
场景如下:我有一个用户可以投票赞成或反对的实体。为了争论,让我们称实体为企业。
我想在我的业务类上拥有一个属性,该属性指示当前登录的用户如何为该特定业务投票。即我想在用户支持的地方显示一个绿色的勾,在用户投票的地方显示一个红十字。
在 SQL 中这是直截了当的,我可以创建一个 SQL 函数,该函数根据参数“:userid”更具体地执行此解析,该参数可以传递到 proc 中。即
SELECT
BusinessId,
CreatedOn,
Username,
[Content].ResolveBusinessVoteIndicator(:userid, P.BusinessId) AS VoteIndicator
FROM
Content.Business P
这里的主要问题是我必须创建一个映射到存储过程结果的实体。这很糟糕,因为现在我不能使用 HQL 或 Criteria,这将是选择的方法。
另一种选择是进行查询,然后简单地遍历结果并设置该属性,如果您一次查看一个业务,这将起作用,但我需要一次显示大量业务.
所以我想问题是......有没有办法使用 HQL 或 Criteria 映射属性,其中该映射基于需要在运行时输入的公式?类似于将参数传递给存储过程并映射出结果。
【问题讨论】:
-
我建议研究 NHibernate 公式和预测。
标签: c# nhibernate hql criteria