我正在编写一个使用NHibernate的应用程序,其中一个要求是为系统创建规则,这将有效地生成SQL查询以过滤数据。这些规则是应用程序用户可维护的。在C#应用程序中创建数据库独立规则 - 规则引擎?
举个例子,你可能有释放订单的规则被称为
ForeignOrders这将成立类似的东西订单(业务对象)DeliveryCountry(业务对象属性) <>英国
或
ExpensiveLondonAcmeOrders这将是建立像订单(业务对象)DeliveryCity(业务对象属性) = 伦敦和订单总金额(业务对象属性)>东西1000 AND订单公司名称 = ACME
然后,当用户发布订单时,他们选择了他们想使用的规则模板,并且只会发布符合这些条件的订单。
业务对象和业务对象属性的名称紧密地反映了底层数据/域模型,但是如何在运行时能够在用户界面中确定并显示这些数据,然后在本质上创建where子句SQL查询。而且,一旦定义,您还需要将这些值存储在数据库中,使其与数据库平台无关。
理想情况下,我不想写这个功能 - 你可以使用规则引擎来实现这样的功能吗?如果是这样,哪些和昂贵的不是真正的选择。如果不是,那么可以使用哪些资源来掌握如何编写这些内容。
感谢您的帮助将是非常有用的
请记住,人们不习惯布尔逻辑_actually_的工作方式,通常会对SQL中'AND'和'OR'条件的工作方式感到困惑,因为它们通常用于英语语言。 –
啊,流行语的力量......规则引擎不会做你想让他们做的事 - 它们基本上是坐落在工作流程中并应用业务规则的机器。 –
我认为我对规则引擎的理解可能不正确,因为它不是我曾经花费很多时间的东西。我只需要知道我所描述的正确术语。 – lostinwpf