2010-04-22 61 views
0

我有一个NH查询,它返回一个带有BasePrice的产品。根据各种其他因素(如制造商价格标记),我在C#端使用PricingService来生成“最终”价格。业务逻辑生成的NHibernate查询

问题是我现在需要查询这个最终值 - 即,我需要运行一个查询,选择特定的“最终”价格范围内的产品,但因为该值只存在于C#端,我不能对它进行NH查询。

我在想,我的这种做法都是错误的,但我真的不希望把最终价格计算的逻辑放在SQL函数或类似的东西中,所以任何建议,将不胜感激。

+0

为什么你不能坚持产品的最终价格?为什么它是不稳定的,必须按需求计算? – 2010-04-23 03:45:52

+0

那么最终价格取决于可由网站管理员进行即时编辑的内容,例如制造商折扣或整个网站的折扣,所有这些都会相互影响。从技术角度而言,更改其中一个值可能会触发数据库更新,但特别是对于站点范围内的折扣,您应该更新许多记录,并必须对折扣之间的交互进行计算。 我承认,你的建议可能是一种实用的选择。 – Lewis 2010-04-23 07:54:59

回答

1

您可以在HQL或Linq中进行计算(使用3.x中的新提供程序; 2.x则有点有限)。

+0

??你能举一些例子吗?你是否说你可以在你的HQL查询中使用C#方法? – Lewis 2010-04-23 07:47:14

+0

不,您不能使用C#方法。但是你可以做预测和计算,包括其他实体,注入计算参数等。 – 2010-04-23 11:39:21