我正在編寫一個使用NHibernate的應用程序,其中一個要求是爲系統創建規則,這將有效地生成SQL查詢以過濾數據。這些規則是應用程序用戶可維護的。在C#應用程序中創建數據庫獨立規則 - 規則引擎?
舉個例子,你可能有釋放訂單的規則被稱爲
ForeignOrders這將成立類似的東西訂單(業務對象)DeliveryCountry(業務對象屬性) <>英國
或
ExpensiveLondonAcmeOrders這將是建立像訂單(業務對象)DeliveryCity(業務對象屬性) = 倫敦和訂單總金額(業務對象屬性)>東西1000 AND訂單公司名稱 = ACME
然後,當用戶發佈訂單時,他們選擇了他們想使用的規則模板,並且只會發佈符合這些條件的訂單。
業務對象和業務對象屬性的名稱緊密地反映了底層數據/域模型,但是如何在運行時能夠在用戶界面中確定並顯示這些數據,然後在本質上創建where子句SQL查詢。而且,一旦定義,您還需要將這些值存儲在數據庫中,使其與數據庫平臺無關。
理想情況下,我不想寫這個功能 - 你可以使用規則引擎來實現這樣的功能嗎?如果是這樣,哪些和昂貴的不是真正的選擇。如果不是,那麼可以使用哪些資源來掌握如何編寫這些內容。
感謝您的幫助將是非常有用的
請記住,人們不習慣布爾邏輯_actually_的工作方式,通常會對SQL中'AND'和'OR'條件的工作方式感到困惑,因爲它們通常用於英語語言。 –
啊,流行語的力量......規則引擎不會做你想讓他們做的事 - 它們基本上是坐落在工作流程中並應用業務規則的機器。 –
我認爲我對規則引擎的理解可能不正確,因爲它不是我曾經花費很多時間的東西。我只需要知道我所描述的正確術語。 – lostinwpf